web-dev-qa-db-ja.com

Interface Builderファイルに不明なクラスがあります。 Xcode 6およびSwift

SwiftでVanillaマスターディテールプロジェクトを開始しました。新しいビューコントローラーを追加してカスタムクラスを設定すると、モジュールリストが空になり、モジュールを選択できなくなります。エラーメッセージ「インターフェイスビルダーファイルの不明なクラス」。コードを実行すると、コンソールに表示されます。ストーリーボードをセットアップしてカスタムクラスとモジュールを知るにはどうすればよいですか?

どうするべき。テンプレートの2つのクラスで問題ありません。

How it should be

そしてそれはどのように

Missing module

追加する必要がありますcustomModule="Target_Name" customModuleProvider="target"をインターフェイスビルダーのソースコードに追加します。それは本当に迷惑です! open .storyboard as source code

更新:プロジェクト全体を別のディレクトリに移動した場合。デスクトップに動作します。 「リポジトリ」という名前のディレクトリが壊れているようです。理由がわからない:(

26
zeiteisen

以前同じ問題に遭遇しましたが、StoryBoardのTarget Membershipが正しく設定されていないことがわかりました

enter image description here

2
Quanlong

デフォルトのXcodeプロジェクトのUIViewControllerサブクラスをUITableViewControllerのサブクラスに変更すると、同様の問題が発生しました。 (私はこの変更をクラスソースファイルに加えましたが、ストーリーボードとは関係ありません)。

次に、新しいクラス名をストーリーボードのデフォルトの「ビュー」のIB「クラス」フィールドに入力しました。クラス名をオートコンプリートせず、実行時にUnknown class in Interface Builder fileエラーが発生しました。

解決策は、ストーリーボードからデフォルトのUIViewControllerオブジェクトを削除してから、新しいUITableViewControllerを追加することでした。次に、そのオブジェクトのIBのクラスをカスタムクラスに設定します。

最初のスクリーンショットのクラスは...ViewControllerで、2番目のクラスは...TableViewControllerであるため、元の質問がこの問題にぶつかっているようです。

0
pkamb

同じ問題が発生していましたが、存在しないカスタムクラスを、ビューコントローラーが管理するビューオブジェクトに誤って割り当ててしまったことがわかりました。したがって、ストーリーボードのドキュメントビューで、不適切に構成されたビューオブジェクトを選択し、IDインスペクターで、表示されている不適切なカスタムクラスを削除しました(バックスペースとリターンキーを押した)。これで問題は解決しました。

私の場合、カスタムクラスは、コントローラによって管理されるビューオブジェクトではなく、ビューコントローラに割り当てる必要があります。

0
Lexo