请让我告诉你我在做什么。


我有一个带有NSView“ MainContainer”的窗口
在窗口的上方,我要在窗口的NSView中添加自定义视图“选项”
客户视图“选项”上有一个名为“客户详细信息”的按钮


在“客户详细信息”上,单击>>>>当前视图(“选项”),然后加载新视图(“客户详细信息”视图)。下面是我的工作方式:

NSViewController* cdv = [[CustomerDetailsView alloc] init];
NSView* MainView = [[self view] superview];
[[self view] removeFromSuperview];
[MainView  addSubview:[cdv view]];


现在的问题是最后一个视图(客户详细信息视图)有一些按钮,没有人在工作,我收到一个错误,即“无法识别的选择器已发送到实例”。请让我知道我该怎么办?
objective-c - 错误:点击按钮时,“无法识别的选择器已发送至实例”-LMLPHP
objective-c - 错误:点击按钮时,“无法识别的选择器已发送至实例”-LMLPHP

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 tr​​ackMouse:inRect:ofView:untilMouseUp:] + 2821
    13 AppKit 0x00007fff912eb34f-[NSButtonCell tr​​ackMouse: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/

10-09 02:41