0

私は xcode 5.1.1 を実行しており、客観的な C/iOS 開発を学ぼうとしています。現在、エミュレーターでコードを実行しようとすると (実際のデバイス atm はありません)、黒い画面が表示されます。コードはここにあります。コンパイルして実行すると、次のエラーが表示されます。

2014-08-23 10:42:57.429 Calculator[1862:60b] *** Terminating app due to uncaught exception         'NSUnknownKeyException', reason: '[<XYZViewController 0xe436640> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key didgetPressed.'
*** First throw call stack:
(
0   CoreFoundation                      0x017ed1e4 __exceptionPreprocess + 180
1   libobjc.A.dylib                     0x0156c8e5 objc_exception_throw + 44
2   CoreFoundation                      0x0187cfe1 -[NSException raise] + 17
3   Foundation                          0x0122cd9e -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] + 282
4   Foundation                          0x011991d7 _NSSetUsingKeyValueSetter + 88
5   Foundation                          0x01198731 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 267
6   Foundation                          0x011fab0a -[NSObject(NSKeyValueCoding) setValue:forKeyPath:] + 412
7   UIKit                               0x004e31f4 -[UIRuntimeOutletConnection connect] + 106
8   libobjc.A.dylib                     0x0157e7de -[NSObject performSelector:] + 62
9   CoreFoundation                      0x017e876a -[NSArray makeObjectsPerformSelector:] + 314
10  UIKit                               0x004e1d4d -[UINib instantiateWithOwner:options:] + 1417
11  UIKit                               0x0034a6f5 -[UIViewController _loadViewFromNibNamed:bundle:] + 280
12  UIKit                               0x0034ae9d -[UIViewController loadView] + 302
13  UIKit                               0x0034b0d3 -[UIViewController loadViewIfRequired] + 78
14  UIKit                               0x0034b5d9 -[UIViewController view] + 35
15  UIKit                               0x0026b267 -[UIWindow addRootViewControllerViewIfPossible] + 66
16  UIKit                               0x0026b5ef -[UIWindow _setHidden:forced:] + 312
17  UIKit                               0x0026b86b -[UIWindow _orderFrontWithoutMakingKey] + 49
18  UIKit                               0x002763c8 -[UIWindow makeKeyAndVisible] + 65
19  UIKit                               0x00226bc0 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 2097
20  UIKit                               0x0022b667 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824
21  UIKit                               0x0023ff92 -[UIApplication handleEvent:withNewEvent:] + 3517
22  UIKit                               0x00240555 -[UIApplication sendEvent:] + 85
23  UIKit                               0x0022d250 _UIApplicationHandleEvent + 683
24  GraphicsServices                    0x037e2f02 _PurpleEventCallback + 776
25  GraphicsServices                    0x037e2a0d PurpleEventCallback + 46
26  CoreFoundation                      0x01768ca5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53
27  CoreFoundation                      0x017689db __CFRunLoopDoSource1 + 523
28  CoreFoundation                      0x0179368c __CFRunLoopRun + 2156
29  CoreFoundation                      0x017929d3 CFRunLoopRunSpecific + 467
30  CoreFoundation                      0x017927eb CFRunLoopRunInMode + 123
31  UIKit                               0x0022ad9c -[UIApplication _run] + 840
32  UIKit                               0x0022cf9b UIApplicationMain + 1225
33  Calculator                          0x00002c8d main + 141
34  libdyld.dylib                       0x01e34701 start + 1
35  ???                                 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb) 

私は次のことを試みましたが、これまでのところ何もうまくいきませんでした

1)展開情報を確認しました。メインインターフェイスがメインに設定されています

2)すべてのブレークポイントをダブルチェックしてオフにし、[デバッグ]-> [ブレークポイントを無効にする]ですべて無効にしました

3) iOS シミュレーターのコンテンツと設定をリセットします。

4) LLDB Debugger で問題を確認しましたが、5.1.1 xcode では問題がなくなっていることがわかりました。

5)ローカルホストがまだ127.0.0.1に設定されていることを確認しました

ありがとう!- テリン

4

3 に答える 3

3

あなたのプロジェクトをチェックアウトしました。数字 ( didgetPressed:) の IBActions は正しく接続されていますが、IBOutlets は正しく接続されていません (プロパティdidgetPressedが存在しません)。

ストーリーボードの参照アウトレットを削除すると機能します (図を参照)。

ここに画像の説明を入力

于 2014-08-23T16:07:18.507 に答える
1

このエラー メッセージは、何が問題なのかを示しています。

2014-08-23 10:42:57.429 Calculator[1862:60b] *キャッチされていない例外 'NSUnknownKeyException' が原因でアプリを終了しています。理由: '[ setValue:forUndefinedKey:]: このクラスは、キー didgetPressed のキー値コーディングに準拠していません.'

このことから、ストーリーボード (または xib) に class のオブジェクトがあると推測できますXYZViewController。そのオブジェクトにはかつて という名前のアウトレットがdidgetPressedあり、そのアウトレットをストーリーボード内の別のものに接続しました。

その後、オブジェクトからアウトレットを削除するプロジェクトに関する何かを変更しましたdidgetPressedが、ストーリーボードでアウトレットを切断しませんでした。たとえば、Objective-C コードのアウトレット名を に変更したdidGetPressedか、アウトレットを削除してアクションに変更したか、またはオブジェクトのクラスを変更した (そして以前のクラスにdidgetPressedアウトレットがあった) 可能性があります。

ストーリーボードでオブジェクトを見つけて、アウトレットXYZViewControllerを切断する必要があります。didgetPressed

于 2014-08-23T16:06:39.630 に答える
0

このエラーは一目瞭然で、ストーリーボードを開き、ユーティリティ パネルで XYZViewController goto 接続インスペクターを選択し、didgetPressed のバインディングを削除することで削除できます。

タイトルが7のボタンを選択するだけでコードを確認し、参照しているアウトレットを削除して再度実行すると機能します。

于 2014-08-23T16:15:49.143 に答える