4

起動時にアプリがクラッシュし、次のエラーが表示されます。

キャッチされない例外 'NSUnknownKeyException' が原因でアプリを終了しています。理由: '[ setValue:forUndefinedKey:]: このクラスは、キー tableViewChannels のキー値コーディングに準拠していません。

これは私が継承し、大幅に作り直したプロジェクトです。最初は tableViewChannels は古い配列だと思っていましたが、XCode でプロジェクト全体を検索しましたが、どこにも表示されません。

お気に入りのテキスト エディターを使用してストーリーボードに移動し、生の XML を確認したところ、古い IBOutlets のように見える "tableViewChannels" のインスタンスが 2 つ見つかりました (実際にはビジュアル ストーリーボードには表示されません)。両方を削除し、保存し、ビルド フォルダーをクリーンアップし、XCode を再起動しましたが、まったく同じエラーでクラッシュしました。このコードがまだプロジェクトのどこに潜んでいるのか、私は困惑しています。助けていただければ幸いです。ありがとう!

4

4 に答える 4

6

完全にはわかりませんが、この問題はストーリーボード/xib に原因がある可能性があります。以前は接続されていた変数でしたが、後でこの変数は削除された IBOutlet が必要です..各 xib を調べて、これがあるかどうかを確認してください..そうでなければ、より良い方法は.. xcodeで「tableViewChannels」と入力します..任意の単語を選択して、それを屈折させます..これにより、リファクタリングするすべてのファイルがリストされます..xibsを含みます. :) このようにして、 tableViewChannels が ur xib のいずれかにあるかどうかを確認できます

于 2013-10-04T17:30:44.167 に答える
1

ターミナルでプロジェクト ディレクトリを検索すると、「tableViewChannels」を含むメタデータ ファイルが Xcode にあるかどうかを確認できます。

cd [path to project]
grep -r --include='*' tableViewChannels .
于 2013-10-04T17:44:24.473 に答える
1

3 つのステップで簡単に解決できます。

  1. 私の場合は「Storyboard.storyboard」というストーリーボード ファイルを 2 回クリックします。
    「Open as」をクリックし、次に「Source Code」をクリックします。

  2. キーボードで「Command」+「F」を押してキーを見つけます。この場合は「tableViewChannels」です。

  3. 見つかったら、行を選択して消去します。

前に述べたように、削除された、または存在しないプロパティを接続しようとすると、ストーリーボードの接続に問題があります。ほとんどの場合、プロパティは存在していましたが、ストーリーボードを使用してアプリにクラッシュが発生することを知らずに消去されました。

于 2014-02-10T18:25:07.937 に答える