2

私は 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

)

どんな助けでも感謝しますありがとう

4

2 に答える 2

6

View Controllerへの参照を保持していないため、View Controllerが時期尚早にリリースされていると思います:

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

ビューを使用してクラスのインスタンス変数を作成pcVCするか、iOS バックグラウンドを揺さぶり、ビュー コントローラーの使用を完全に停止して、NIB から直接ビューをロードする必要があります。

この記事は、メモリ管理に関連するものであるという考えを与えてくれました。

于 2013-07-24T05:46:34.817 に答える
0

Interface Builder でコントローラーを開き、そのアクションを確認します (オレンジ色の円を右クリックします)。アクション リンクが壊れているようです。これは、アクションの名前変更、またはメソッドを削除してから再度追加した結果である可能性があります。

于 2013-07-24T05:39:49.337 に答える