web-dev-qa-db-ja.com

Swiftコンパイラエラー:未解決の識別子 'name'の使用

「名前」というクラスを含めようとしましたが、エラーが発生しました。

Swift Compiler Error: Use of unresolved identifier 'name'

クラスが存在し、コンパイルエラーが含まれていません。

20
Vojtech Vrbka

いくつかの問題が考えられます。

  1. クラスの1つにはテスト対象があり、他のクラスにはありません。すべてのクラスをテスト対象に含めるか、まったく含めないようにする必要もあります。

  2. Objective Cクラスの場合、クラスがObjectiveCブリッジングヘッダーファイルにあることを確認します。

  3. NSManagedObjectサブクラスの場合。クラス宣言の前に@objc(className)を追加します。

  4. 別のフレームワークの一部である場合は、クラスまたは関数がpublicであることを確認してください

61
Vojtech Vrbka

私もこれを持っていました。おそらく、最初のクラスはテストモジュールに含まれており、「名前」は含まれていないことがわかるでしょう。単純に、テストにクラスを含める場合、そのクラスが参照するすべてのクラスはテストに含まれている必要があります。

6
Owen Godfrey

私もこの問題を抱えていました。クラス2のコード内でクラス1を参照しようとしていました。私の問題は、クラス2にはAとBのターゲットメンバーシップがあり、クラス1にはクラスAのターゲットメンバーシップしかなかったということでした。

これを修正するには、[ユーティリティ]タブ(Xcodeウィンドウの一番上のバーの右端のボタン)を開き、[ターゲットメンバーシップ]サブセクションの両方のクラスで同じボックスがオンになっていることを確認します。

6
Binya Koatz

問題を解決しました

ターゲット->ビルドフェーズ->ソースのコンパイル->クラスファイルの追加

1
Bindi