영구 저장소를 삭제해야합니다 (개체를 100,000 개 이상의 개체가 있으므로 개체별로 수행하는 것이 실용적이지 않습니다). 나는이 시도했다 :코어 데이터 영구 저장소를 제거하는 방법
- (IBAction)resetDatabase:(id)sender {
NSPersistentStore* store = [[__persistentStoreCoordinator persistentStores] lastObject];
NSError *error = nil;
NSURL *storeURL = store.URL;
// release context and model
[__managedObjectContext release];
[__managedObjectModel release];
__managedObjectModel = nil;
__managedObjectContext = nil;
[__persistentStoreCoordinator removePersistentStore:store error:nil];
[__persistentStoreCoordinator release];
__persistentStoreCoordinator = nil;
[[NSFileManager defaultManager] removeItemAtPath:storeURL.path error:&error];
if (error) {
NSLog(@"filemanager error %@", error);
}
// recreate the stack
__managedObjectContext = [self managedObjectContext];
}
을하지만 나중에 가게에 개체를 삽입하려고 할 때이 오류가 발생합니다 :
This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.
업데이트 : 내가 제거하기 전에 MOC 및 MOM 해제 시도 영구 저장소하지만 여전히 동일한 오류가 발생합니다.
와우, 문제는 'removePersistentStore'라고 생각합니다. 그 라인이 없었다면 효과가있었습니다 ... 왜 그래야할지 궁금합니다. – David
.sqlite 파일을 제거하면 "외부 저장소 허용"이라는 핵심 데이터 특성을 사용할 때 많은 쓰레기가 남을 것입니다. – magma
마그마가 맞습니다. iCloud를 사용하면 문제가 발생합니다. –