作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 xib 文件中设置了用户界面,一切都运行良好。但是 xib 文件非常困惑,所以我决定尝试创建一些按钮/栏/等。以编程方式代替。我可以让它们正常显示,但我在选择器上做错了。
例如,对于 xib 文件上的 instructions
按钮,我只是使用鼠标将 instructions
按钮与 giveInstructions
方法连接起来在 .h 文件中,一切都很好。但是当我以编程方式尝试它时,就像这样:
UIBarButtonItem *instr = [[UIBarButtonItem alloc] initWithTitle:@"Instructions"
style:UIBarButtonSystemItemDone target:nil action:@selector(giveInstructions:)];
我收到无法识别的选择器发送到实例
错误。我做错了什么?
最佳答案
鉴于您修复了目标问题,“giveInstructions”很可能不存在,至少在此类的实现中不存在。
如果您已声明
- (void)giveInstructions:(id)sender;
在您的 .h 文件中,您的 .m 文件中必须有匹配的实现,例如:
- (void)giveInstructions:(id)sender{
//my code here
}
如果您已经这样做了,那么我能想到的唯一可能错误的事情是,在您的 @selector(giveInstructions:)
中,如果您不这样做,冒号可能是不必要的有一个发送者,或从该方法传递的任何其他参数。
注意:当调用@selector
时,如果您调用的方法与其实际声明的名称有1个字符不同,您将收到此错误,因为选择器不存在.
关于iphone - 新手难以理解选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11917434/
我想模拟这个函数: function getMetaData(key) { var deferred = $q.defer(); var s3 = vm.ini
我是一名优秀的程序员,十分优秀!