UIManagedDocumentを使用してデータを管理しています。モデルを作成して使用すると、すべてが機能しているように見えますが、変更がSQLiteストアに書き戻されていません。
UIManagedDocumentのドキュメントには、自動保存でデータベースへのデータの永続化を処理する必要があると記載されていますが、それは行われていないようです。
NSManagedObjectContext *moc = [doc managedObjectContext];
NSError *error = nil;
MyItem *itemToAdd = (MyItems *)[moc existingObjectWithID:(NSManagedObjectID *)itemsID error:&error];
これにより、追加したい(そして成功した)オブジェクトがフェッチされます。
[itemContainer addItemsObject:itemToAdd];
[doc updateChangeCount:UIDocumentChangeDone];
これにより、アイテムが別のオブジェクトのアイテムコレクションに追加され、変更が完了したことがドキュメントに通知されます。
この直後にCoreDataストアに書き込まれた変更が表示されると思いますが、Instrumentsで見ると、変更が行われないことがわかります。
アイテムコレクションはNSOrderedSetであり、このアイテムに関するコメントのため、次のようになります。
NSOrderedSetで生成されたアクセサーで例外がスローされました
コレクションを保持するオブジェクトにaddItemsObject:を追加しました:
- (void)addItemsObject:(MyItem *)value
{
NSMutableOrderedSet* tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.items];
[tempSet addObject:value];
self.items = tempSet;
}
アイテムコレクションが変更されたことがCoreDataに通知されて問題が発生している可能性がありますが、その方法がわかりません。