这是我想做的事情:
id<MyDelegate> _delegate;
....
[_delegate performSelectorOnMainThread...]
@protocol MyDelegate <NSObject>
....
我的问题是,performSelectorOnMainThread是在NSObject的类别中定义的,因此编译器无法识别它。我得到:
“警告:在协议中找不到'-performSelectorOnMainThread:withObject:waitUntilDone:'”
我可以委托代表,但这样做会破坏委托的目的。有什么建议?
最佳答案
将您的代表声明为NSObject<MyDelegate> * _delegate;
。
这告诉编译器_delegate
必须是NSObject
的实例或必须响应MyDelegate
协议要求的子类。
关于objective-c - 从Objective-C中具有类别的类扩展协议(protocol),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3722469/