web-dev-qa-db-ja.com

InterfaceBuilderファイルの不明なクラス

かなりシンプルなiPhoneアプリを作成しました。次に、アプリのiPadバージョン(ユニバーサル)を作成すると考えました。 'upgrade'オプションを使用してみましたが、うまくいきませんでした。そこで、別のユニバーサルアプリを作成し、xibファイルをプロジェクトにコピーしました。それもうまくいかなかったので、xibファイル(および関連する.mファイルと.hファイル)を削除しました。

これで、iPhoneバージョンを実行すると、InterfaceBuilderファイルに不明なクラスiPadSample1AppDelegateが表示されます。エラーおよびUISplitViewControllerは、UIUserInterfaceIdiomPadで実行している場合にのみサポートされ、その後終了します。それで、iPadの冒険に着手する前に撮ったスナップショットに戻しました...同じエラーが発生します。 XCode検索とSpotlight検索を試しました。私のプロジェクトのどこにもそのクラスまたはUISplitViewControllerへの参照はありませんが、何らかの理由でXCodeは存在すると考えています。

存在しない参照を削除する方法はありますか?笑

更新:

XCode環境がジャックされていることに関係している可能性があります。ここで他のいくつかの投稿を見つけた後、Clean All/Build/Touchを試しましたが、タッチすると、XCodeで次のエラーが発生しました。

キャッチされない例外:

-[XCBuildLogWarningMessage setFileLocations:]:認識されないセレクターがインスタンス0x2014dd0a0に送信されました

とにかく、他のすべてを台無しにすることなくXCodeを再インストールしますか?

16
tg2

IPhoneシミュレータのビットがXCodeと同期していないことが判明しました。 「コンテンツと設定のリセット」を実行しましたが、すべてが機能します:)誰が知っていましたか?

20
tg2

ターゲット内のビルドフェーズに移動すると、コンパイルソースが表示されます。必要なmファイルがそれぞれリストされていることを確認してください。そうでない場合は、ここに追加するだけで警告が消えます。

13
embinder

私はいくつかの調査をしましたそしてそれを見つけました

for my case

プロジェクトナビゲータでファイルを文句を言うには右クリックする必要があります。

View/Utilities/Show File Inspector.を選択し、何らかの理由でTarget Membershipが選択されませんでした。

そのため、リンカはクラスの存在を知らないと言っています。

私はそれを選ぶためにチェックを入れただけで、すべてが魅力のように機能します。

7
harryngh

ストーリーボードを右クリック->名前を付けて開く->ソースコード

ストーリーボードのソースファイルで不明なクラス名を見つけます。 UIViewサブクラスの1つにカスタムクラス名を誤って割り当てたことが原因である可能性があります。

7
user1685442

私はこれと同じ問題を抱えていましたが、上記の解決策では解決されませんでした。 info.plistファイルから「メインストーリーボードファイルのベース名(iPad)」エントリを削除することで、機能するようになりました。

1
Swindler

私にとってそれを修正したのは、シミュレーターでapを「削除」し、再構築することでした。

おそらく、このクラスはまだiphoneシミュレーターのローカル設定で再現されていました。

1
Slaine

私の場合、このエラーはクラス名をリファクタリングした後に発生しました。どういうわけか、クラス名は.xibファイルで変更されていません。このxibファイルをテキストエディットで開き、すべてのOldClassVCをNewClassVCに置き換えました。次に、新しいビルドの前にxib-fileとCleanedプロジェクトを保存しました。プロジェクトはうまく実行されます。

0

Cocoaポッドを使用している場合は、.framework /.aファイルをプロジェクトの「バイナリとライブラリのリンク」セクションにドラッグします。

0
Rajat Talwar