簡體   English   中英

單擊按鈕時應用程序崩潰

[英]app crashes when button clicked

我來自iOS開發背景。 我正在appdelegate中創建簡單的Mac應用程序,正在向窗口添加NSViewController實例,並且在NSViewController類中有一個按鈕。 當我單擊按鈕時,它崩潰了。 我查看了這些帖子,但無法弄清楚應用程序出了什么問題。 為什么我的應用程序無法“附加”動作?

這是應用程序委托中的代碼

PrViewController *pcVC = [[PrViewController alloc] initWithNibName:@"PrViewController" bundle:nil];
[self.window.contentView addSubview:pcVC.view];

按鈕功能

    -(IBAction)startClicked:(id)sender{NSLog@"Btn selected";}

當我單擊按鈕時,應用程序崩潰。 以下是堆棧跟蹤:

Producer_consumer[45914:303] -[__NSCFType startClicked:]: unrecognized selector sent to instance 0x101d07680
 Producer_consumer[45914:303] -[__NSCFType startClicked:]: unrecognized selector sent to instance 0x101d07680
Producer_consumer[45914:303] (
0   CoreFoundation                      0x00007fff900deb06 __exceptionPreprocess + 198
1   libobjc.A.dylib                     0x00007fff8ce803f0 objc_exception_throw + 43
2   CoreFoundation                      0x00007fff9017540a -[NSObject(NSObject) doesNotRecognizeSelector:] + 186
3   CoreFoundation                      0x00007fff900cd02e ___forwarding___ + 414
4   CoreFoundation                      0x00007fff900cce18 _CF_forwarding_prep_0 + 232
5   AppKit                              0x00007fff85862959 -[NSApplication sendAction:to:from:] + 342
6   AppKit                              0x00007fff858627b7 -[NSControl sendAction:to:] + 85
7   AppKit                              0x00007fff858626eb -[NSCell _sendActionFrom:] + 138
8   AppKit                              0x00007fff85860bd3 -[NSCell trackMouse:inRect:ofView:untilMouseUp:] + 1855
9   AppKit                              0x00007fff85860421 -[NSButtonCell trackMouse:inRect:ofView:untilMouseUp:] + 504
10  AppKit                              0x00007fff8585fb9c -[NSControl mouseDown:] + 820
11  AppKit                              0x00007fff8585750e -[NSWindow sendEvent:] + 6853
12  AppKit                              0x00007fff85853644 -[NSApplication sendEvent:] + 5761
13  AppKit                              0x00007fff8576921a -[NSApplication run] + 636
14  AppKit                              0x00007fff8570dbd6 NSApplicationMain + 869
15  Producer_consumer                   0x0000000100001c02 main + 34
16  libdyld.dylib                       0x00007fff920127e1 start + 0

任何幫助將不勝感激謝謝

我認為視圖控制器被過早釋放,因為您沒有持有對它的引用:

PrViewController *pcVC = [[PrViewController alloc] initWithNibName:@"PrViewController" bundle:nil];
[self.window.contentView addSubview:pcVC.view];

您需要使用視圖使pcVC成為pcVC的實例變量,或者最好還是晃動您的iOS背景並完全停止使用視圖控制器,而直接從NIB加載視圖。

本文為我提供了有關內存管理的想法。

在Interface Builder中打開控制器,然后查看其動作(右鍵單擊橙色圓圈)。 看來您的動作鏈接已損壞。 這可能是操作重命名,刪除或再次添加方法的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM