0

よく知られているエラーですが、奇妙なケース:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<PHComposerViewController 0xb65c1e0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key activity.'

一部のアウトレットがコントローラーのプロパティを参照していることは理解していますが、このプロパティがありません。このプロパティを数コミット前に削除し、ストーリーボードのアウトレットも削除しました。でも、知らないところにあるんです。もちろん、「クリーン」、レポの再クローン、再起動などを試みました...

「アクティビティ」でグローバルテキスト検索を試みましたが(ストーリーボードxmlおよびプロジェクトディレクトリのすべての場所で)、結果はありませんでした。

この問題は、私が追加した国際化サポートに何らかの形で関連しています。ベース、ロシア語、英語の 3 セットがあります。この問題は、英語を「strings」から「interface」に変換すると消えます...

また、古いインストール (AppStore の現在のバージョン) で起動するとエラーが発生します。現在利用可能なバージョンには i18 のサポートがありません。しかし、この点は私の内なる言語にもっと関係していると思います。

私は "string" -> "interface" のウォークアラウンドを持っていますが、原因として string が好ましい方法です。

4

2 に答える 2

1

通常、 a に関連してこの例外がUIViewController表示される場合、あなたが暗示しているように、構成が誤っている XIB ファイルと関係があります。すべてのコンセントを調べて、それらが適切に接続されていて、存在しないものに割り当てられていないことを確認してください。

「ファイルの所有者」を右クリックして、感嘆符がないことを確認することをお勧めします。

ここに画像の説明を入力

ストーリーボード ファイルについて話している場合は、ファイルの所有者ではなく、左側のリストからコントローラー インスタンスを右クリックします。

ここに画像の説明を入力

于 2013-07-17T13:45:06.403 に答える
0

他の誰かがこの問題を抱えている場合は、次のようにします。

  1. アウトレットをチェックして、それらがすべて割り当てられていること、およびビューコントローラー/クラスの関連アイテムに適切に接続されていることを確認します (これを行う方法については、@Stavash の回答を参照してください)。
  2. クリーン ビルドを実行します (cmnd+shift+k)
  3. シミュレーターからアプリを削除します (またはシミュレーターをリセットします)。上記の #1 と #2 を実行しましたが、まだ問題がありました。最後に、シミュレーターからアプリを削除して再実行しました-うまくいきました!
  4. 上記の 3 つをすべて実行しても問題が解決しない場合は、ストーリーボード ファイルをバンドル リソース ([プロジェクト] -> [ビルド フェーズ] の下) から削除し、アプリを実行してエラーを発生させます。ストーリーボード ファイルを再度追加して、再度実行します。
于 2013-10-12T11:48:51.900 に答える