0

シナリオ:

「インポート」という名前の xcode プロジェクトを作成し、XML ファイルを読み込んでコンテンツをコア データ データベースにインポートしました。次に、SQLite ファイルをメイン バンドルに追加し、Core Data Books の例のコードを使用してインポートする 2 番目の「メイン」プロジェクトを作成します。「インポート」プロジェクトで .xcodedatamodel を変更し、ファインダーでそれを明らかにして「メイン」プロジェクトにドラッグし、そこに NSManagedObject モデル ファイルを生成しました。今まではこれでうまくいきましたが、Xcode は混乱しているようです...

最近、いくつかの属性を削除し、新しい属性を 1 つ追加しました。次に、上記と同じプロセスを実行したところ、「構造体または共用体ではないメンバー'属性名' の要求」と表示されます。記事「モデル名」と入力すると。esc を押して、インテリジェンスはまだ古い属性を取得していますか?

「インポート」プロジェクトでは、すべてが正常に機能していますが、どの属性でもエラーは発生せず、インテリジェンスは正しいですか?

アドバイスしてください、xcodeにキャッシュはありますか? 「すべてのターゲットを消去」を使用しましたが、うまくいかないようです。

ジェームズ

4

3 に答える 3

1

カスタム NSManagedObject サブクラスのプロパティを変更しましたか?
それをするのを忘れていたようですね。

プロジェクト全体で属性名を検索しましたか? 推測する必要がある場合は、どこかで宣言されていると言えます。

于 2010-11-06T10:15:33.860 に答える
0

今朝修正しました。

プロジェクトで検索を行うためにfluchtpunktのヒントを得た後、ファインダーを使用して古い属性名の1つを検索し、NSManagedObjectクラスファイルの1つがまだ「Classes」フォルダーに表示されていました。xcode のものは classes フォルダーの外にあり、正しい属性を持っていましたが、xcode は「classes」ディレクトリ内の古いファイルへの参照を持っていませんでしたが、まだ使用していました...削除して、今は動作しています!

血まみれの xcode とファイル参照とグループ - 代替手段があればいいのに!

すべてのアイデアをありがとう!

ジェームズ

于 2010-11-08T07:52:22.677 に答える
0

xcdatamodel に変更を加えた後、次のことを行う必要があるので、これを試してください

.xcdatamodel ファイルを選択します。

ステップ1:

[デザイン] -> [データ モデル] -> [モデル バージョンの追加] に移動します

ステップ2:

[デザイン] -> [データ モデル] -> [現在のバージョンを設定]に移動します

「現在のバージョンを設定」で、最新のバージョンを取得します。

コンパイルして実行します。:]

お役に立てれば。

于 2010-11-06T09:11:12.890 に答える