2

iPhone シミュレーターでアプリケーションを実行しようとすると、クラッシュして次のエラーが発生します。

2013-10-22 20:24:02.367 brainademy[46328:a0b] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0xcc6de90> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key ChooseGameViewController.'
*** First throw call stack:
(
0   CoreFoundation                      0x01a0d5e4 __exceptionPreprocess + 180
1   libobjc.A.dylib                     0x017908b6 objc_exception_throw + 44
2   CoreFoundation                      0x01a9d6a1 -[NSException raise] + 17
3   Foundation                          0x01451c2e -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] + 282
4   Foundation                          0x013bdf3b _NSSetUsingKeyValueSetter + 88
5   Foundation                          0x013bd493 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 267
6   Foundation                          0x0141f94a -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 412
7   UIKit                               0x007a4cd5 -[UIRuntimeOutletConnection connect] + 106
8   libobjc.A.dylib                     0x017a27d2 -[NSObject performSelector:] + 62
9   CoreFoundation                      0x01a08b6a -[NSArray makeObjectsPerformSelector:] + 314
10  UIKit                               0x007a382e -[UINib instantiateWithOwner:options:] + 1417
11  UIKit                               0x007a55bb -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 165
12  UIKit                               0x00502fcb -[UIApplication _loadMainNibFileNamed:bundle:] + 58
13  UIKit                               0x005032f9 -[UIApplication _loadMainInterfaceFile] + 245
14  UIKit                               0x00501e9f -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 543
15  UIKit                               0x0051642c -[UIApplication handleEvent:withNewEvent:] + 3447
16  UIKit                               0x00516999 -[UIApplication sendEvent:] + 85
17  UIKit                               0x00503c35 _UIApplicationHandleEvent + 736
18  GraphicsServices                    0x0319e2eb _PurpleEventCallback + 776
19  GraphicsServices                    0x0319ddf6 PurpleEventCallback + 46
20  CoreFoundation                      0x01988dd5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
21  CoreFoundation                      0x01988b0b __CFRunLoopDoSource1 + 523
22  CoreFoundation                      0x019b37ec __CFRunLoopRun + 2156
23  CoreFoundation                      0x019b2b33 CFRunLoopRunSpecific + 467
24  CoreFoundation                      0x019b294b CFRunLoopRunInMode + 123
25  UIKit                               0x005016ed -[UIApplication _run] + 840
26  UIKit                               0x0050394b UIApplicationMain + 1225
27  brainademy                          0x0000b01d main + 141
28  libdyld.dylib                       0x02e8c725 start + 0
)
libc++abi.dylib: terminating with uncaught exception of type NSException

ほとんどの場合、これは、ファイルの所有者、宣言されていない IBOutlet または IBAction に何かがあることを意味しますが、そうではありません。私はこのような他のすべての質問を見てきましたが、どれも役に立ちませんでした.

ChooseGameViewControllerが宣言されているため、問題発生しませんが、ファイルの所有者からフックを外してみました。アプリを実行するとクラッシュし、ChooseGameViewController の代わりに ColorGameViewController になります。ViewController IBOutlets を 1 つ 1 つ削除しようとしたところ、ChooseGameViewController ではなく、ラベルやボタンなどの他の IBOutlets がエラーに表示されました。宣言されていないアウトレットがある場合に通常発生するように、アウトレットの横にエラーは発生しません。

クリーン ビルドを作成しようとしましたが、うまくいきませんでした。また、ファイルの所有者が正しいクラス (RootViewController) に接続されています。

このアプリは少し前まで問題なく動作していましたが、今日 Xcode を開いたところ、これらのエラーが発生し始めました。

これは宣言されていないアウトレットでは問題になりません。

  • すべてのアウトレットが宣言されています
  • ファイルの所有者にエラーはありません
  • このエラーは、すべてのIBOutletで発生し、IBOutlets のみで発生します

このエラーの原因は何ですか?

4

3 に答える 3

1

新しい Xcode プロジェクトを作成してすべてをコピーすることで修正しました。これは、iPad のサポートを追加しようとしたことと関係があると思われます。

.xibこれは、新しいアプリケーションを作成し、それをユニバーサルにし、iPad 用の新しいファイルを作成し、プロジェクト マネージャーを介して接続する場合でも、これを実行しようとすると常に発生します。

iPad のサポートを削除しても、上記のエラーが引き続き表示される場合は、コードを使用してビュー コントローラーを変更するだけで何かを行う必要があると思います。

于 2013-10-24T01:31:55.787 に答える