从具有objective-c类别的类扩展协议

Tyl*_*230 2 protocols objective-c categories

这是我想要做的:

id<MyDelegate> _delegate;
....
[_delegate performSelectorOnMainThread...]

@protocol MyDelegate <NSObject>
....
Run Code Online (Sandbox Code Playgroud)

我的问题是performSelectorOnMainThread是在NSObject类别中定义的,因此编译器无法识别它.我得到:"警告:' - performSelectorOnMainThread:withObject:waitUntilDone:'在协议中找不到'"我可以委托代表,但这会破坏代表的目的.有什么建议?

bbu*_*bum 5

将您的代理人声明为NSObject<MyDelegate> * _delegate;.

这告诉编译器_delegate 必须必须响应协议要求的实例NSObject或子类.MyDelegate