MENU

xcodeにファイルがあるのにクラスを認識せず別ファイルの参照が出ている場合の対処方法

Xcodeにはファイルが見えてるのに、クラスを使おうとすると補完が効かない/別のクラス(別の定義)が参照される場合の対処方法をメモ。

目次

1. ターゲットに含まれていない

Xcode上にファイルがあっても、ビルド対象のターゲットに含まれていないと参照できない

対処法:

  1. 問題のファイルをクリック
  2. 右側の「File Inspector」を開く
  3. Target Membership にチェックが入ってるか確認

2. クラスのスコープ・アクセス修飾子の問題

internal(デフォルト)やprivateだと、別モジュールから見えない。

対処法:

または、同じターゲット内にあることを確認する。

3. 同名クラスが別のファイル・モジュールに存在している

別のフレームワークや自作ファイルで同名クラスがある場合、Xcodeがそっちを優先して補完・参照してる可能性あり。

対処法:

  • 該当クラス名で Command + クリック して、どこを見に行っているか確認
  • 明示的に名前空間を指定する(モジュール名.クラス名)

4. ファイルがコンパイル対象から外れている(Build Phases)

Compile Sources にそのファイルが入ってないと、ビルドに含まれずクラスが見えないことがある。

対処法:

  1. .xcodeproj を開く
  2. TARGETS > Build Phases > Compile Sources を開く
  3. 問題のファイルがリストにあるか確認

5. Xcodeのキャッシュバグ/補完バグ

Xcodeはしばしば補完や参照解析がバグる。
この場合は「掃除」するのが手っ取り早い。

対処法:

その後、Xcodeを再起動。

その他の可能性

・Swift PackageやCocoaPodsなどの ビルド構成 に問題がある可能性

モジュール分割している場合、@objcpublic をつけて明示的にアクセス可能にする必要あり

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次