Spa*_*Dog 14 iphone objective-c
我在课堂上有这个
[delegate performSelector:@selector(doStuff:) withObject:myObject afterDelay:2.0];
Run Code Online (Sandbox Code Playgroud)
我有这个错误
警告:'-performSelector:withObject:afterDelay:'在协议中找不到
我无法弄清楚可能出现的问题.
任何线索?
谢谢.
Dav*_*ong 30
您的问题是您已将委托实例变量声明为:
id<SomeProtocol> delegate;
Run Code Online (Sandbox Code Playgroud)
对?嗯,这意味着编译时检查器只会查找<SomeProtocol>协议中的方法.但是,performSelector:withObject:afterDelay:宣布NSObject.这意味着您应该将ivar声明为:
NSObject<SomeProtocol> * delegate;
Run Code Online (Sandbox Code Playgroud)
这表示它必须NSObject符合<SomeProtocol>,而不是任何符合的对象<SomeProtocol>.这应该摆脱你的警告,你不必做任何铸造.
| 归档时间: |
|
| 查看次数: |
3116 次 |
| 最近记录: |