2016-10-30 12 views
1

を複製、私のデータモデルは準備ができたとき、私は私のデータモデルファイルが開いているときに、サブクラスを生成しようとしました:NSManagedObjectのサブクラスがそう宣言

エディタ - > NSManagedオブジェクトのサブクラス

オーケーを作成し、2つのファイルがあります1つはクラス宣言であり、もう1つはプロパティです。

しかし、私はすぐに、すでに存在するクラスの再宣言を行ったというメッセージが表示されました。 previously generated files

私の質問は明らかである:

  1. をすると、これらの2つのファイルが生成されたこれは、元の生成されたファイルがどこにあるのですか?
  2. これらのファイルを私のプロジェクトナビゲータに、そしてもちろん私のViewControllerと同じフォルダに入れたいのですが?
+0

読む:http://stackoverflow.com/a/39933534/1457385および/またはhttps://developer.apple.com/videos/play/wwdc2016/242/をご覧ください。 – shallowThought

+0

.xcdatamodelにCodegento Manual/Noneを設定すると、すべてのエンティティが鍵になります。 –

答えて

0

すでにXcodeので自動的に生成されたため、重複した宣言を取得したファイルを生成しています。

詳細を見つけるthis answer。あなたのxcdatamodeldで

+0

クラス定義を使用する際の問題の1つは、電話機を接続してビルドデバイスを変更すると、自動的に生成されるサブクラスファイルが自動的に参照を失うことです。つまり、xcodeは定義を持たないというエラーを表示しますあなたのViewControllerで使用されるコアデータクラスの –

+0

上記の設定でここでうまく構築できます。問題が解決しない場合は、問題を示す最小限のサンプルプロジェクトへのリンクを投稿してください。 – shallowThought

1

コアデータモデル上の既存のエンティティを変更するのは一般的です。

コアデータモデル内の既存のエンティティにフィールドを追加すると仮定すると、そのエンティティのクラスを再生成してそのフィールドを組み込む必要があります。

このクラスを再生成するときは、既存のファイルを上書きするオプションがあります。

  1. 前のエンティティの変更が行われたとき、それはおそらく、作成されました:あなたの質問に答えるために

  2. 以前に生成したファイルをデスクトップに移動します。次に、新しいファイルを生成します。 2組のファイルの違いを見て、適切な処置を講じてください。私が間違っていない場合、1つのファイルは拡張子であり、1つはクラスファイルです。
0

したがって、正解は自分の質問にコメントしたようです。元の投稿はhttps://stackoverflow.com/a/39933534/5642467です。

存在する場合、プロジェクトから生成されたすべてのNSManagedObjectサブクラスを削除します。

すべてのエンティティの.xcdatamodelにCodegento Manual/Noneを設定してください。 プロジェクトをクリーンアップしてください。 ---これはキーステップです。これはデフォルトでXcode8によって自動に設定されています。

クリーンDerivedDataフォルダ

再起動Xcodeの

手動であなたの問題ならば、これらのファイルは、プロジェクト ビルド

に追加されていることを確認します( "編集" メニュー内)NSManagedObjectのサブクラス

を生成持続、繰り返し:

クリーンプロジェクト

クリーンDerivedDataフォルダ

再起動Xcodeは

0

あなたはには、マニュアル/ユーティリティパネルの[なしは前にコンパイルしていないエンティティークラスcodegenのを修正する必要が

enter image description here

関連する問題