0

アプリを実行しようとすると、次のエラーが発生します。

2010-04-29 13:49:01.355 MyApp[56123:207] *** Terminating app due to uncaught
exception 'NSUnknownKeyException', reason: '[<MyViewController 0x5112b10>
setValue:forUndefinedKey:]: this class is not key value coding-compliant for 
the key toolbar.'

MyViewController以前は、ペン先IBOutletのオブジェクトに接続する「ツールバー」と呼ばれていました。UIToolbarツールバーやペン先はもう必要ないと判断したので、プロジェクトから削除しました。しかし、Xcodeはまだ「ツールバー」を参照したいようです。

ペン先を使用しなくなった場合、ツールバーへの参照はどこにありますか?Xcodeをなだめるためにダミーの「ツールバー」プロパティを合成することはできますが、この種の醜いハックは避けたいと思います。

編集:不思議なことに、シミュレーターではなくデバイスでコードを実行したときに例外が発生しませんでした。MyViewControllerまた、 (ツールバーを含まない)の些細なペン先を使用すると、例外はなくなりました。私はgitを使用しMyViewControllerていますが、ツールバーやペン先があった前からコードの以前のコミットを実行するために戻ったとき、それらも奇妙なことに例外を与えました。そのコードは正常に実行されていました。この例外は、Xcodeとシミュレーター、およびプロジェクトから不要なペン先を削除したときの状態が残っていることと関係があると思います。

4

1 に答える 1

1

XcodeはIDEです。アプリの実行中にViewControllerにツールバーを要求するのはXcodeではありません。

これをトラブルシューティングする方法は2つあります。

  1. にブレークポイントを設定しobjc_exception_throw、デバッガーでアプリを実行します。
  2. にブレークポイントを設定し-[NSObject(NSKeyValueCoding) valueForUndefinedKey:]、デバッガーでアプリを実行します。

いずれにせよ、例外が発生すると、デバッガーはアプリを中断(中断)します。スタックトレースを見て、何がvalueForKey:メッセージを送信したかを確認します。

于 2010-04-30T03:34:40.190 に答える