请让我告诉你我在做什么。
我有一个带有NSView“ MainContainer”的窗口
在窗口的上方,我要在窗口的NSView中添加自定义视图“选项”
客户视图“选项”上有一个名为“客户详细信息”的按钮
在“客户详细信息”上,单击>>>>当前视图(“选项”),然后加载新视图(“客户详细信息”视图)。下面是我的工作方式:
NSViewController* cdv = [[CustomerDetailsView alloc] init];
NSView* MainView = [[self view] superview];
[[self view] removeFromSuperview];
[MainView addSubview:[cdv view]];
现在的问题是最后一个视图(客户详细信息视图)有一些按钮,没有人在工作,我收到一个错误,即“无法识别的选择器已发送到实例”。请让我知道我该怎么办?
2015-09-17 15:45:37.872 TechHeal [5058:125394]无法启动
2015-09-17 15:46:05.452 TechHeal [5058:125394]-[NSSnapshotContextSignature cryptoClick:]:无法识别的选择器已发送到实例0x6080000e5c80
2015-09-17 15:46:05.452 TechHeal [5058:125394]-[NSSnapshotContextSignature cryptoClick:]:无法识别的选择器已发送到实例0x6080000e5c80
2015-09-17 15:46:05.464 TechHeal [5058:125394](
0 CoreFoundation 0x00007fff9834a03c __exceptionPreprocess + 172
1个libobjc.A.dylib 0x00007fff8e54c76e objc_exception_throw + 43
2 CoreFoundation 0x00007fff9834d0ad-[NSObject(NSObject)didNotRecognizeSelector:] + 205
3 CoreFoundation 0x00007fff98292e24 ___forwarding___ + 1028
4 CoreFoundation 0x00007fff98292998 _CF_forwarding_prep_0 + 120
5 libsystem_trace.dylib 0x00007fff95ef2cd7 _os_activity_initiate + 75
6 AppKit 0x00007fff9127eeb1-[NSApplication sendAction:to:from:] + 452
7 AppKit 0x00007fff91294946-[NSControl sendAction:to:] + 86
8 AppKit 0x00007fff91294862 __26- [NSCell _sendActionFrom:] _ block_invoke + 131
9 libsystem_trace.dylib 0x00007fff95ef2cd7 _os_activity_initiate + 75
10 AppKit 0x00007fff912947bf-[NSCell _sendActionFrom:] + 144
11 libsystem_trace.dylib 0x00007fff95ef2cd7 _os_activity_initiate + 75
12 AppKit 0x00007fff91292cb3-[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2821
13 AppKit 0x00007fff912eb34f-[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 770
14 AppKit 0x00007fff91291366-[NSControl mouseDown:] + 714
15 AppKit 0x00007fff917fb2dc-[NSWindow _reallySendEvent:isDelayedEvent:] + 14125
16 AppKit 0x00007fff9118ac86-[NSWindow sendEvent:] + 470
17 AppKit 0x00007fff91187212-[NSApplication sendEvent:] + 2504
18 AppKit 0x00007fff910b0b68-[NSApplication运行] + 711
19 AppKit 0x00007fff9102d244 NSApplicationMain + 1832
20 TechHeal 0x00000001000048e2主+ 34
21 TechHeal 0x0000000100001224开始+ 52
22 ??? 0x0000000000000003 0x0 + 3
)
(lldb)
PS:如果我直接加载“客户”详细信息,则它可以正常工作,但是,如果我从另一个视图加载,则其不起作用。
最佳答案
您似乎正在创建一个CustomerDetailsView
控制器,获取其视图,然后让该控制器超出范围。假设在该控制器中实现了encryptClick
,则问题在于调用该对象时,该对象已被释放。该消息被传递到现在占据该内存块的任何位置。
尝试使cdv
成为发布代码中任何self
的强大属性,以便它可以处理事件。
关于objective-c - 错误:点击按钮时,“无法识别的选择器已发送至实例”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32627156/