先日Xcodeでプロジェクトを作成し、オブジェクトをViewControllerにアウトレット接続しようとしたところ、Could not insert new outlet connection: Could not find any information for the class named というエラーが発生してしまいました。
このエラーが出て、アウトレット接続ができなくなってしまったので対処法を探してみたところ、無事解決策を見つけることができたので紹介します。
はじめに
今回紹介する方法はXcodeで作成したアプリケーションで、アウトレット接続をしようとした 際のエラーです。
私の場合、Cocoaアプリ開発を行っている最中に発生したものですが、iOSアプリでも発生する可能性があります。
発生した問題のエラーが以下になります。
このようなエラーが発生しました。
【ViewController】と書かれている箇所は、セグエで接続しようとしたクラスによって変わるかと思います。
私の場合はViewControllerにLabelを接続する時に発生しました。
エラーの内容
実際に発生したエラーは以下の画像のような表示でした。
ViewControllerクラスにTextFieldをアウトレット接続しようとした時に発生したものです。
そこで、このエラーをGoogle翻訳にかけてみたところ以下のような結果になりました。
”新しいコンセント接続を挿入できませんでした:ViewControllerという名前のクラスの情報を見つけることができませんでした”
翻訳を読んでもいまいちわかりにくいですね。
調べてみたところ、このエラーは「クラスが存在しない」時に発生するもののようです。
ですが私の場合クラスは存在していますし、もっというとプロジェクトを作成してラベルを設置しただけだったので、おかしな設定は特にしていなかったと思います。
ちなみにこのエラーは、ViewControllerを作成し直したり別のプロジェクトを新規作成しても回避できませんでした。
実際に問題のエラーの対処法は「Finder」から該当するフォルダを削除することで回避できたので見ていきましょう。
エラーの対処法
今回の対処法はフォルダを削除する必要がありました。
ですので、紹介する方法を実行する前に必ずバックアップを作成した上、全て自己責任でお願いします。
では実際の方法を確認してください。
このエラーに対処するために削除するファイルは以下に保存されています。
Finder > ライブラリ > Developer > Xcode > DerivedData > …
このように進んでいくと、これまで作成したプロジェクト名が表示されていると思いますので、その中からエラーが発生したプロジェクト名のファイルを探しましょう。
ライブラリフォルダへ移動するためには、Finderを表示した状態でメニューバーの「移動」を選択し、optionキーを押しながらライブラリ項目を選択することで移動できます。
ここにライブラリ項目が追加されるはずです。
このようにして見つかったフォルダを削除するのですが、バックアップを作成する場合はこのファイルも保存しておくと良いかもしれません。
削除が完了したら、Xcodeで表示しているプロジェクトを再起動しましょう。
DerivedDataというのは、作成したプロジェクトのログなどを保存しておくもので、簡単にいうとプロジェクトの記録になります。
ですので、削除しても再度プロジェクトを起動した時に再生成されます。
もしアラートが表示された場合は、その通りに選択してプロジェクトのデータを作成してください。
これで再度プロジェクトを起動したら、アウトレットやアクションでのセグエ接続が可能になっているかと思います。
適当ですが、無事アウトレット接続できました。
まとめ
今回紹介した方法は私の環境下で解決した方法なので、全ての環境で対処できるかはわかりませんが、無事アウトレット接続できるようになりました。
Xcodeで謎の不具合が発生した時は、プロジェクトのDerivedDataを疑ってみると解決できるかもしれません。
もし同じようなエラーが発生した方は試してみてはいかがでしょうか。
ではまた。