UIManagedDocument를 사용하여 데이터를 관리하고 있습니다. 모델을 만들고 사용하면 모든 것이 작동하는 것처럼 보이지만 변경 사항이 SQLite 스토어에 다시 쓰여지지 않습니다.UIManagedDocument 저장 안함
UIManagedDocument에 대한 설명서에 따르면 자동 저장은 데이터를 데이터베이스에 보존해야하지만 실제로 발생하지는 않습니다.
NSManagedObjectContext *moc = [doc managedObjectContext];
NSError *error = nil;
MyItem *itemToAdd = (MyItems *)[moc existingObjectWithID:(NSManagedObjectID *)itemsID error:&error];
이렇게하면 내가 추가하려는 객체를 가져오고 성공합니다.
[itemContainer addItemsObject:itemToAdd];
[doc updateChangeCount:UIDocumentChangeDone];
이 항목을 다른 개체의 항목 컬렉션에 추가 한 다음 변경 작업이 완료되었음을 문서에 알려줍니다.
필자는 얼마되지 않아 코어 데이터 저장소에 기록 된 변경 사항을 확인하기 위해 약간의 시간이 걸릴 것으로 예상하지만 인스 트루먼 테이션에서 보았을 때, 결코 발생하지 않는다고 봅니다.
항목 모음은 NSOrderedSet이며, 때문에이 항목에 대한 코멘트 :
- (void)addItemsObject:(MyItem *)value
{
NSMutableOrderedSet* tempSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.items];
[tempSet addObject:value];
self.items = tempSet;
}
: 컬렉션을 보유하고있는 객체 : 내가 addItemsObject을 추가 한
Exception thrown in NSOrderedSet generated accessors
아마도 Core Data가 항목 컬렉션이 변경되었다는 정보를 받는데 문제가있을 수 있지만 어떻게 표시되지는 않습니다.
인스트루먼트를 사용하면 데이터가 코어 데이터 캐시에 쓰여지고 있음을 알 수 있습니다. 하지만 핵심 데이터 저장 도구에는 나타나지 않으며 앱을 종료하고 다시 시작하면 변경 사항이 사라집니다. – stevex
내 문제가 발견되었습니다. 내가 추가하려고하는 객체에 오류가 있음을 알았습니다. 필요한 속성을 놓쳤습니다. handleError를 재정의하지 않고 문제가 있다는 징후가 없습니다. 여기에 블로그 블로깅 : http://blog.stevex.net/2011/12/uimanageddocument-autosave-troubleshooting/ – stevex