@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

在其他一些类方法中,我通过这种方式使用它:
objB *obj1 = [[objB alloc] init];
objA *obj2 = [[objA alloc] init];

[obj1 foo: obj2];

我有编译器错误:“ARC不允许将Objective-C指针隐式转换为'__autoreleasing id *'

获得此功能的正确方法是什么?

最佳答案

id已经是一个指针类型,仅使用id<Protocol>而不是id<Protocol>*即可。

关于objective-c - 将对象指针作为协议(protocol)指针传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9174748/

10-14 21:59
查看更多