【发布时间】:2014-10-14 13:22:25
【问题描述】:
Cocoa/Objective-C 新手在这里。
我有一个 MainMenu.xib 文件,其中有一个 NSView。
这就是 AppDelegate.h 中的 awakeFromNib 的样子:
- (void)awakeFromNib {
NSViewController *x = [[Login alloc] initWithNibName:@"Login" bundle:nil];
NSView *v = [x view];
[_theView addSubview:v];
}
新视图有一个按钮,但是当我单击它时,我收到消息“无法识别的选择器已发送到实例”。
我完全迷路了。请帮我解决一下这个。谢谢!
它还在该行(在 main.m 中)抛出“线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = ...):
return NSApplicationMain(argc, argv);
错误是:
2014-10-14 09:05:09.743 FAST Tax Scanner[18408:303] -[OS_dispatch_queue_runloop login:]:无法识别的选择器发送到实例 0x6000000f7900 2014-10-14 09:05:09.743 FAST Tax Scanner [18408:303]-[OS_dispatch_queue_runloop login:]:无法识别的选择器发送到实例 0x6000000f7900 2014-10-14 09:05:09.744 FAST Tax Scanner[18408:303] ( 0 CoreFoundation 0x00007fff9484725c 异常预处理 + 172 1 libobjc.A.dylib 0x00007fff8c72fe75 objc_exception_throw + 43 2核心基础0x00007fff9484a12d-[NSObject(NSObject)不识别选择器:]+205 3 核心基础 0x00007fff947a5272 ___forwarding_ + 1010 4 核心基础 0x00007fff947a4df8 _CF_forwarding_prep_0 + 120 5 AppKit 0x00007fff8b87d260-[NSApplication sendAction:to:from:] + 327 6 AppKit 0x00007fff8b87d0de-[NSControl sendAction:to:] + 86 7 AppKit 0x00007fff8b8c9c4d-[NSCell_sendActionFrom:] + 128 8 AppKit 0x00007fff8b8e3655-[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2316 9 AppKit 0x00007fff8b8e2a27-[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 487 10 AppKit 0x00007fff8b8e213d-[NSControl mouseDown:] + 706 11 AppKit 0x00007fff8b863a58-[NSWindow 发送事件:] + 11296 12 AppKit 0x00007fff8b8025d4-[NSApplication sendEvent:] + 2021 13 AppKit 0x00007fff8b6529f9 -[NSApplication 运行] + 646 14 AppKit 0x00007fff8b63d783 NSApplicationMain + 940 15 快速税务扫描仪 0x0000000100001452 主要 + 34 16 libdyld.dylib 0x00007fff982c55fd 开始 + 1 17 ??? 0x0000000000000003 0x0 + 3 )
【问题讨论】:
-
粘贴完整的错误消息,这样我们就可以看到它抱怨的是哪个选择器和哪个实例。此外,如果错误发生在单击按钮时,您可能希望显示响应该按钮操作而执行的代码。
-
如果你在 xcode 中连接错误也可能发生这种情况
-
@PhillipMills 完成。感谢您的宝贵时间!
-
它表示您正在对无法识别该方法的对象调用
login:方法。由于它不是您通常会使用的对象类型,我怀疑您正在尝试使用已发布的东西。在您使用login:调用的地方,代码是什么样的? (或者您可能已将控件连接到login:方法,该方法在运行时不存在。)
标签: objective-c macos cocoa nsbutton nsviewcontroller