데이터를 잘 가져오고 내보내는 핵심 데이터 모델이 있습니다. 내 응용 프로그램의 작동 방식은 데이터베이스에서 JSON 파일을 다운로드하여 구문 분석하고 핵심 데이터 모델을 플러시 한 다음 데이터를 다시 추가하는 것입니다 (사실상 로컬 데이터 모델 새로 고침).핵심 데이터는 앱이 다시 시작될 때까지 변경되지 않습니다.
데이터베이스를 변경하면 변경 사항이 JSON 파일에 반영되지만 앱을 다시 시작 (다시 끝내기, 다시 열기) 할 때까지 핵심 데이터 모델에 반영되지 않습니다.
내가 데이터베이스를 비우는 것과 관련이 있는지 확인하려면 확실하지만 내 손가락을 넣을 수는 없습니다. 아래에 몇 가지 코드가 포함되었습니다.
내가 데이터 모델 세척하는 사용하고있어서
내가 데이터 모델에 데이터를 추가하기 위해 사용하고 코드의- (void)resetCoreData;
{
NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"AppWithCoreData.sqlite"];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager removeItemAtURL:storeURL error:NULL];
NSError* error = nil;
if([fileManager fileExistsAtPath:[NSString stringWithContentsOfURL:storeURL encoding:NSASCIIStringEncoding error:&error]])
{
[fileManager removeItemAtURL:storeURL error:nil];
}
persistentStoreCoordinator = nil;
managedObjectContext = nil;
[self managedObjectContext]; // Rebuild Object Context
}
한 줄 :
[model setValue:[dictionary objectForKey:@"eventID"] forKey:@"eventID"];
을
나중에 데이터를 다시 가져 옵니까? 또한 이것을보십시오 : http://stackoverflow.com/a/5770216/730701. 유일한 차이점은 컨텍스트를 nil로 설정하기 전에 파일을 제거하고 그 사람이 파일을 삭제한다는 것입니다. – Adam
예,이 메서드를 호출 한 다음 데이터를 다시 가져옵니다. 오류없이 저장됩니다. 컨텍스트를 설정 한 후 두 줄을 이동 한 후 저장하려고하면 오류가 발생합니다. 저장할 수 없습니다 : 작업을 완료 할 수 없습니다. (코코아 오류 134030. –