No know instance method for selector 'respondsToSelector:'
来源:互联网 发布:有线网络正常没网速 编辑:程序博客网 时间:2024/06/06 05:59
错误提示:
No know instance method for selector'respondsToSelector:'
之前写代理的时候,都没有去调用respondsToSelector:去检查我们的代理者有没有实现对应的方法。最近感觉不管是出于代码规范还是程序的安全性,都应该加上这个检查。于是就出现了这样的错误。
于是查了一下respondsToSelector:究竟是谁的方法。
好吧,由于我定义delegate的时候,是这样写的
@property (nonatomic, weak) id<CYSSecondTableViewControllerDelegate> delegate;
所以,id类型的delegate无法使用NSObject的respondsToSelector:方法了。
于是,我默默的去把id换成NSObject*试试能不能解决这个问题
@property (nonatomic, weak) NSObject <CYSSecondTableViewControllerDelegate>* delegate;
不报错了,成功!
接下来,我又在万能的度娘找到了其他解决方式
@property (nonatomic, weak) id <CYSSecondTableViewControllerDelegate> delegate;
在还是上面这样写的情况下,让delegate强转一下类型为NSObject
if ([(NSObject *)_delegate respondsToSelector:@selector(tableViewController:updateAnswerWithTitleIndex:answer:)]) { };
也是可以的。
另外,让协议继承NSObject,也可以避免Xcode的报错
@protocol CYSSecondTableViewControllerDelegate<NSObject>/**-----------------*/if ([_delegate respondsToSelector:@selector(tableViewController:updateAnswerWithTitleIndex:answer:)]) { };
0 0
- No know instance method for selector 'respondsToSelector:'
- No known instance method for selector 'respondsToSelector:'
- No known instance method for selector 'respondsToSelector:'
- No known instance method for selector 'respondsToSelector:'
- [问题记录]No known instance method for selector 'respondsToSelector:'
- ios开发解决No known instance method for selector 'respondsToSelector:'的方法
- AttributeError: addinfourl instance has no __call__ method
- No action instance for path
- Expected selector for Objective-C method
- No getter method for property
- '#selector' does not refer to an '@objc' method,No method declared with Objective-C selector 'compos
- struts No action instance for path 异常
- [****ViewController respondsToSelector:]: message sent to deallocated instance
- [****ViewController respondsToSelector:]: message sent to deallocated instance
- [****ViewController respondsToSelector:]: message sent to deallocated instance
- Argument of '#selector' refers to instance method 'changeScale(byReactingTo:)' that is not exposed t
- Swift 4.0 报错:Argument of '#selector' refers to instance method xxx
- Expected selector for Objective-C and Expected method body
- 关于协议的讲解,图例很不错
- Pycharm简单使用
- 剑指offer-面试题7:用两个栈实现队列
- 递推求解专题练习(For Beginner) 【hdu】
- No job jar file set. User classes may not be found. See Job or Job#setJar(String)
- No know instance method for selector 'respondsToSelector:'
- js 闭包
- python如何一次性取出多个随机数
- 远程调试技巧
- GridBagLayout使用规则
- Eclipse+Maven创建webapp项目
- Linux串口编程之发送
- NSHTTPCookie
- sakai代码添加