iphone - 新手难以理解选择器

标签 iphone objective-c xcode

我在 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/

相关文章:

ios - TableView 中的 NSMutableArray 为空

objective-c - 如何在 objective-c 中将html数据转换为PDF

iphone - 使用 Leaks 时的 NSLog 消息

ios - Xcode 4.6,为什么它显示汇编程序,尽管 "Show Disassembly When Debugging"未被选中

iphone - 自定义单元格中的 UIImageView

iphone - UIApplication 的 openURL 使我的应用程序崩溃

ios - 如何让一个 View Controller 中的 Action 在不同的 View Controller 中启动另一个 Action ?

ios - 找不到 : -lPods-RestKit 的文件

iphone - CALayer 使用的简单示例——也许在 UITextField 中

iphone - NSMutableArray 在 ViewDidLoad 之前被释放