gpt4 book ai didi

objective-c - 按钮单击事件导致 MAC 应用程序崩溃

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:13 26 4
gpt4 key购买 nike

你好 friend 我在创建 MAC 应用程序时遇到问题我有两个 View Controller 。当我点击放置在第一个 View Controller 应用程序中的按钮时,使用以下代码替换 View

- (IBAction)gotoEmployeeView:(id)sender
{
delegate = (AppDelegate *)[[NSApplication sharedApplication]delegate];
secondViewController *employeeVC = [[secondViewController alloc]initWithNibName:@"secondViewController" bundle:nil];
[[delegate.window.contentView animator] replaceSubview:self.view with:secondVC.view];
secondVC.view.frame = ((NSView *)delegate.window.contentView).bounds;
}

现在我有一个按钮,我已经在第二个 View 上为这个按钮设置了点击事件。下面id按钮点击事件

- (IBAction)btnClicked:(id)sender
{
NSLog(@"clicked");
}

当我点击它时,应用程序崩溃了。并低于错误

2013-08-12 14:33:46.989 Employee Register[1954:303] -[__NSCFString btnClicked:]: unrecognized selector sent to instance 0x10213ace0
2013-08-12 14:33:46.991 Employee Register[1954:303] -[__NSCFString btnClicked:]: unrecognized selector sent to instance 0x10213ace0
2013-08-12 14:33:46.994 Employee Register[1954:303] (
0 CoreFoundation 0x00007fff8d76cf56 __exceptionPreprocess + 198
1 libobjc.A.dylib 0x00007fff80e47d5e objc_exception_throw + 43
2 CoreFoundation 0x00007fff8d7f91be -[NSObject doesNotRecognizeSelector:] + 190
3 CoreFoundation 0x00007fff8d759e23 ___forwarding___ + 371
4 CoreFoundation 0x00007fff8d759c38 _CF_forwarding_prep_0 + 232
5 CoreFoundation 0x00007fff8d75c70d -[NSObject performSelector:withObject:] + 61
6 AppKit 0x00007fff8c5208ca -[NSApplication sendAction:to:from:] + 139
7 AppKit 0x00007fff8c5207fe -[NSControl sendAction:to:] + 88
8 AppKit 0x00007fff8c520729 -[NSCell _sendActionFrom:] + 137
9 AppKit 0x00007fff8c51fbec -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 2014
10 AppKit 0x00007fff8c59fb74 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 489
11 AppKit 0x00007fff8c51e7f6 -[NSControl mouseDown:] + 786
12 AppKit 0x00007fff8c4e9c98 -[NSWindow sendEvent:] + 6306
13 AppKit 0x00007fff8c4833a5 -[NSApplication sendEvent:] + 5593
14 AppKit 0x00007fff8c419a0e -[NSApplication run] + 555
15 AppKit 0x00007fff8c695eac NSApplicationMain + 867
16 Employee Register 0x0000000100001342 main + 34
17 Employee Register 0x0000000100001314 start + 52
)

最佳答案

看起来您正在向 NSString 对象发送 btnClicked 消息。您可以在调用 [... bntClicked] 的地方发布代码吗?

您所描述的行为可能意味着实现 btnClicked 方法的 viewController 在调用操作之前被释放,或者界面构建器中的操作设置不正确。

您应该在实现 btnClicked 的 viewController 的 dealloc 方法中添加一条日志语句,并查看它在调用操作之前没有被释放。如果您使用的是 ARC,请确保您有一个指向 View Controller 的成员数据,这样它们就不会被释放。

您还应该删除界面生成器中的 ibaction 关联并再次执行此操作,确保将按钮连接到正确的 View Controller 。

关于objective-c - 按钮单击事件导致 MAC 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18183362/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com