0

永続ストアを使用してデータを保存および取得するアプリに取り組んでいます。私はそれをすべて機能させていますが、私がやっていることは正しいかどうか非常に疑わしいいくつかの奇妙な動作があります.

アプリをビルドすると、一部の値が永続ストアに読み込まれ、アクセスできるようになります。これは、インターフェイスビルダーでアプリを閉じてからリロードしても当てはまります。

読み込まれたデータは、ログに記録されると、次のようになります。

エンティティ: 予定; データ: { 日 = 月曜日; 時間 = 8; プロジェクト = プロジェクト 1; タスク = タスク 1; }

現在、アプリを再構築すると、ストア内のエントリは引き続き存在しますが、それらのエントリにあるはずのデータが破壊されているように見えます。

ロードされたデータは次のようになります。

エンティティ: 予定; データ: 障害

ストアが完全に再構築されてエントリが残っていないか、再構築前の状態のままであると想定します。

予定はNSManagedObjectxcdatamodel で定義されたクラスであり、4 つの文字列属性 (日、時間、プロジェクト、およびタスク) があります。

4

2 に答える 2

1

コードがないと、何が起こっているのかを確認するのは困難です。エラーが発生しましたか?

data:faultは、何か間違ったことをしたという意味ではありません。リクエストを行うたびに、CoreDataはオブジェクト全体ではなくそのスケルトンを取得します。オブジェクト内のデータはすぐには入力されませんが、障害が発生した場合にのみ入力されます(たとえば、そのエンティティのプロパティへのアクセス)。

したがって、この方法でそのオブジェクトをログに記録すると、次のようになります。

NSLog(@"%@", managedObject);

これがその動機かもしれません。

障害の詳細については、障害を読むことをお勧めします

それが役に立てば幸い。

于 2012-05-16T10:47:24.357 に答える
0
  1. シミュレーターを実行し、上部のメニュー バーでiOS Simulator->を選択しますReset Content & Settings...。CoreData を含むアプリのすべてのデータがリセットされます。

  2. または、に移動して~/Library/Application\ Support/iPhone\ Simulator/5.0/Applications、アプリ バンドルを削除することもできます。

  3. または、単にxxx.sqliteファイルを削除します~/Library/Application\ Support/iPhone\ Simulator/5.0/Applications/E88E378D-14A9-4900-A613-BF9082D4B2C1(YourAppBundle)/Documents/

次に、プロジェクトを再構築して実行し、データを消去します。;)

于 2012-05-14T13:24:16.323 に答える