2011-11-13 10 views
2

ここに私のコードはCoreData:不変モデルを変更することはできません

__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; 

NSArray *entities = [__managedObjectModel entities]; 
for (NSEntityDescription *entityDesc in entities) 
{ 
    NSLog(@"TWEAK"); 
    [entityDesc setProperties:[entityDesc properties]]; 
} 

このスロー例外「NSInternalInconsistencyExceptionは」、理由:「不変のモデルを変更することはできません。」 on

なぜわからないのですか?私の意見では、これはまだ編集可能でなければならないのですか?

答えて

1

公式のdocは、管理対象オブジェクトモデルが永続的ストアコーディネータに関連付けられるまで、編集可能なと言います。したがって

:あなたはコード内でPSCにお母さんが割り当てられている場合

  1. あなたは、docで説明したように、それはだ、問題に引用しませんでした。
  2. 上記のコードを貼り付けるだけであれば、Appleのライブラリやそのドキュメントのバグです。バグレポートを提出する必要があります。

とにかく、CoreDataデータベースファイルは固定モデルに関連付けられているため、通常、モデル内のエンティティの説明を微調整し、保存したCoreDataファイルに対して使用することはできません。エンティティの説明を微調整することで、何を達成したいですか?

+0

実際には、iOS 4で説明したように動作するので、iOS 5のバグのように見えます。[モデルコピー] "tweaked"できる編集可能なコピーを返します。 – Marcin

関連する問題