web-dev-qa-db-ja.com

Swift 3コアデータ「エンティティ」エラー: `宣言されていない型の使用`

_Use of undeclared type 'Transcription'_

Swift 3( https://learnappdevelopment.com/uncategorized/how-to-use-core-data-in-ios -10-Swift-3 /

そして、私は次の行で上記のエラーを受け取ります:let fetchRequest: NSFetchRequest<Transcription> = Transcription.fetchRequest()

再確認したところ、エンティティ「文字起こし」のスペルが.xcdatamodeldファイルに正しく記述されています

チュートリアルはSwift 3用に設計されましたが、リリースされてから修正された別の変更があったため、Swiftのその他の変更を推測しています過去2か月がこのエラーの原因です。

私はCore Dataを初めて使用するので、これをデバッグする方法がわかりません。私は解決策にとても感謝しています!

10
PlateReverb

忘れないでくださいimport CoreDataをサブクラスに

9
Badre

同じエラーに悩まされ、Xcode 8.2.1を使用していました。プロジェクトをクリーンアップし、Xcodeを閉じて再度開き、ビルド後にエラーが解消されました。

4
Leibniz

データモデルを強調表示し、[エディター]-> [NSManagedObjectサブクラスの作成...]に移動します。

これはエラーを解決しました

4
PlateReverb

これは、Xcodeがパスを判別できない.xcdatamodel、プロジェクトをクリーンアップすると、関連するエラーが表示される場合があります。このエラーは名前の変更.xcdatamodel

解決には以下が含まれます。

  • Product-> Clean(Shift-Cmd-K)に移動します
  • エラーが続く場合
    • Ctrl-クリック(右クリック)問題のある.xcdatamodel-> Finderに表示
    • ドラッグ.xcdatamodelプロジェクトにインポートするには、新しいエントリを作成する必要があります
    • 削除以前の.xcdatamodelエントリ。
  • ビルド(Cmd-B)修正を確認する
3
Marco Leong

Xcodeバージョン8.2ベータ(8C30a)を使用して、エンティティを追加または変更すると、同じエラーが発生します。データモデルインスペクターで、動的クラスを自分で生成するかのように、CodegenオプションをManual/Noneに戻します。保存してから、Category/Extensionに戻すと、動作するようです。 (また、Option-CleanでプロジェクトをクリーンアップしてXCodeを再起動してみましたが、簡単に再現できました。)アップグレード8.3ベータ版でこのバグが修正されることを願っています。

1
Peter Gits

No. 1)サブクラスを作成し、[エディタ]-> [NSManagedObjectサブクラスの作成]に移動します。次に、サブクラスファイルを同じプロジェクトのフォルダに置き換えます。

Creating NSManagedObject

2)次に、派生データ内のファイルを削除します-Xcode内->設定:

Deleting derivedData

3)次に、NSManagedObjectサブクラスの古いファイルへの参照を削除します。これは、それらが自動的にシステムを作成するためです。

enter image description here

私の場合、エラーを引き起こしていたエンティティ(あなたの場合は「文字起こし」)を.xcdatamodeldファイルから削除してから、手動で再度追加する必要がありました。

0