C'è un modo per indicare al compilatore che un oggetto di classe è conforme a un protocollo?Un oggetto di classe ObjC può essere conforme a un protocollo?
Come comprendo, creando +(void)foo
metodi di classe, un istanza di quell'oggetto classe avrà tali metodi come metodi di istanza . Quindi, finché creo i metodi +(void)foo
per tutti i metodi di protocollo richiesti, posso avere un atto oggetto di classe come delegato.
Il mio problema, naturalmente, è che nel file di intestazione della classe so solo come indicare che le istanze della classe sono conformi al protocollo (come è tipicamente il caso). Quindi, il meglio che ho capito è di lanciare l'oggetto di classe in questo modo:
something.delegate = (id<SomethingDelegate>)[self class]
Qualche idea?
correlati, ma diversi: ObjC: is there such a thing as a "class protocol"?
Ancora bisogno della sintassi del puntatore. 'Classe *'. –
Non è necessaria la sintassi del puntatore. 'Class' è già un puntatore (è definito come' typedef struct objc_class * Class'. Ne avresti bisogno solo se hai bisogno di un puntatore a una classe (che è probabilmente piuttosto raro). – wbyoung
Nono, intendo 'Class' come in segnaposto, non 'Class' come nel tipo effettivo. Penso di aver letto male il tuo post. –