2013-02-14 12 views
10

を提出し、私はそれで不明なクラスの情報私は実行するたびにタイトルに私はクレイジーマッサージを得たよう

Unknown class info in Interface Builder file. 

を扱うことができない私のプロジェクトでは、いくつかのクレイジーなバグが表示されますまたはいくつかのバーが消えます。誰が何をすべきか知っていましたか?

+0

これは私を助けた:http://stackoverflow.com/a/24924967/511299 – Sunkas

答えて

22

ためには、これを試してみてください:

  1. 製品 - >をクリーンXcodeの
  2. シミュレータやデバイスからアプリを削除
  3. 再起動のXcodeに
  4. (&をビルドする)
もう一度実行してください

これは役に立たない場合は、手作業で見つけなければならないペン先やストーリーボードのクラスへの参照がある可能性があります削除します。

+1

それはまあ私が作ったダムの間違いだった..突然あなたの第二の選択肢はすごかった私のストーリーボードのビューコントローラーの1つに半クラス名を入れてください。それが問題でした。ありがとう:) –

+0

2番目のオプションが働いた!ありがとう! :) – Noel

+0

ありがとう、ありがとう、あなたをthnak!私は時間を無駄にしようとしましたが、シミュレータからアプリを削除する必要があるとは決して考えませんでした。 –

0

私はあなたがそのクラスにInterface Builderでビューまたはコントローラをカスタマイズした後、あなたのビューとビューコントローラクラスの名前を変更したときにこれらのタイプのエラーを参照する傾向があります。あなたのペンやストーリーボードのビューやコントローラーを見て、カスタムクラスがまだ存在し、それに応じて一致するかどうかを確認します。

あなたはIBファイルを更新せずに基礎となるコードの名前を変更または削除するときは、IBファイルの問題に実行されます。 IBOutletの名前をInterface Builderのオブジェクトにリンクした後に削除または変更する場合も同様の問題が発生します。明示的に削除しない限り、Interface Builderで参照が残っています。

最後に、IBファイルをテキストファイルとして見ることができます。これはxmlドキュメントで、すべてのクラス参照が表示されます。プロジェクトに存在しない可能性のあるクラスがあるかどうかを確認することができます。あなたはUIViewのサブクラスのいずれかの削除/削除カスタムクラス名が割り当てられているので、

7

警告であってもよいです。このようなシナリオを修正するために、

Open interface builder class as Source Code by right clicking on it (Open As -> Source Code). 
Find your unknown class name in the source file. And handle accordingly. 

私のために働いた。

+0

これは私のために働く。 – nuttynibbles

1

これはまた、あなたがビルドフェーズ/ソースをコンパイル

1

からClassName.mを削除した場合、私は解決策を提供し、その後、私の端からコンテキストのビットで、問題を言い換えますが起こる:

私がしていますカスタムのSwiftフレームワークを作成し、フレームワークプロジェクトをワークスペースにインポートしました。そして、私はこのフレームワークを私のSwiftアプリケーションに依存するターゲットにしました。最後に、Interface builderのフレームワークからクラスを参照しました。

私はクラスが見つからないというエラーを取得保管し、私はそれが出力クラスは、マングルされた/ unmangledにObjCの対応だったデバッガに気づきました。..

ソリューション

単にあなたにObjCブリッジヘッダにあなたのフレームワークのヘッダを追加します。

#import <MazKit/MazKit-Swift.h> // In my case, MazKit 

を、シンボルがエクスポートされ、そしてあなたはcmdで+ヘッダーをクリックしていることを確認することができますそれ自体、あなたは混乱していないクラス名を見るでしょう。

3

は、私はスウィフトを使用して、今日この問題に遭遇しなかったhttps://stackoverflow.com/a/29013058/784318

に私の答えを参照してください。

クラスModel.h + Model.mModel.swiftに変更しました。 このオブジェクトはInterface Builderでclass = Modelで使用されました。

オブジェクトを置き換えたらすぐにクラスをロードできなくなりました。

Class = Model 
Module = 

Class = Model 
Module = <TARGETNAME> 

にあなたはビルド設定で <TARGETNAME>を見つけることができます:私がしなければならなかった何

からIBにクラス参照を変更することでした。それはまたあなたの生成スウィフト・ヘッダーに表示名です:#import "TARGETNAME-Swift.h"

+0

これはまた動作します(ちょっと簡単です):http://stackoverflow.com/a/24924967/511299 – Sunkas

0

プロジェクト - >一般 - >配備情報 - >メインインターフェイス< - このフィールドをクリアします。

メイン(ストーリーボード)ファイルを削除したようですが、依然としてプロジェクトプロパティでそれを参照しているようです。

関連する問題