@protocol protoA <NSObject>
@end
@interface objA : NSObject<protoA> {
@private
}
@end
@implementation objA
@end
@protocol protoB <NSObject>
-(void) foo: (id <protoA> *) par;
@end
@interface objB : NSObject<protoB>
-(void) foo: (id <protoA> *) par;
@end
@implementation objB
-(void) foo: (id <protoA> *) par
{
//...
}
@end
in qualche altro metodo di classe ho usarlo in questo modo:passando puntatore dell'oggetto come puntatore protocollo
objB *obj1 = [[objB alloc] init];
objA *obj2 = [[objA alloc] init];
[obj1 foo: obj2];
Ho errore del compilatore: "conversione implicita di un puntatore Objective-C a '__autoreleasing id *' non è consentita con ARC
Qual è il modo corretto di fare ottenere questa funzionalità?
che era. Grazie – gossamer
ECCO! Questa soluzione mi ha salvato un mal di testa XD –