Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从objective-c中具有类别的类扩展协议_Objective C_Protocols_Categories - Fatal编程技术网

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

从objective-c中具有类别的类扩展协议,objective-c,protocols,categories,Objective C,Protocols,Categories,以下是我试图做的: id<MyDelegate> _delegate; .... [_delegate performSelectorOnMainThread...] @protocol MyDelegate <NSObject> .... id\u代表; .... [\u委托performSelectorOnMainThread…] @协议MyDelegate .... 我的问题是performSelectorOnMainThread是在NSObject的一个类别

以下是我试图做的:

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

@protocol MyDelegate <NSObject>
....
id\u代表;
....
[\u委托performSelectorOnMainThread…]
@协议MyDelegate
....
我的问题是performSelectorOnMainThread是在NSObject的一个类别中定义的,因此编译器无法识别它。我得到: 警告:'-performSelectorOnMainThread:withObject:waitUntilDone:'在协议中找不到'
我可以选代表,但这违背了代表的目的。有什么建议吗?

将您的委托声明为
NSObject*\u委托


这告诉编译器,
\u delegate
必须是
NSObject
的实例或子类,必须响应
MyDelegate
协议的要求。

我需要查看更多代码来解决此问题。