我有一个resolveInstanceMethod用于动态实现方法的类.当我从代码的其他部分调用动态实现的方法时,编译器会发出一个警告,指出该对象可能无法响应选择器.我希望编译器不为此类发出此类警告,但我不想在其他类上调用无效选择器时禁止显示警告.这可能吗?
假设您知道将在编译时动态解析的方法签名,您可以在非正式类别中声明它们:
@interface MyDynamicallyResolvingClass(MethodsThatWillResolveAtRuntime)
... declare the methods here ...
@end
Run Code Online (Sandbox Code Playgroud)
无需提供实施.
如果您不知道签名 - 如果方法名称也是动态的 - 那么您将需要使用-performSelector:(或单个或双个对象参数变体)或者您可能希望使用NSInvocation,除非性能是一个主要的问题(如果是,有其他解决方案,显然更加繁琐).
| 归档时间: |
|
| 查看次数: |
190 次 |
| 最近记录: |