2015-01-21 3 views
0

나는 지난 날에 내가 범한 오류를 해결하기 위해 광범위한 연구를 해왔지만 내 문제에 대한 해결책을 찾을 수 없었다. 내 애플 리케이션은 "기록"에 "데이터 포인트"로 데이터를 기록하고 핵심 데이터에 이러한 개체를 저장하도록 설계되었습니다. 녹음이 완료 (데이터 포인트와 기록 자체의 모두가 이미 작성되어 MOC에 추가 된) 후 나는 컨텍스트 저장 : 다시코어 데이터와 관련된 코코아 오류 19

- (void)saveContext 
{ 
    NSError *error; 
    if (self.managedObjectContext != nil) { 
     if ([self.managedObjectContext hasChanges] && ![self.managedObjectContext save:&error]) { 
      NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
      abort(); 
     } 
    } 
} 

을, 나는 이전 프로젝트에서이 정확한 코드를 사용하고이 근무하고있다 차질없이. 그러나이 프로젝트에서 앱은 함수를 - (void)savecontext에 호출합니다. abort()가 호출 될 때, 다음과 같은 오류가 표시됩니다

CoreData: error: (19) PRIMARY KEY must be unique 
Unresolved error Error Domain=NSCocoaErrorDomain Code=19 "The operation couldn’t be completed. (Cocoa error 19.)" UserInfo=0x155c6850 {NSSQLiteErrorDomain=19, NSUnderlyingException=error during SQL execution : PRIMARY KEY must be unique, NSFilePath=/var/mobile/Containers/Data/Application/9C5CB2CF-70C3-462B-BD26-E75AC4AF22E5/Documents/APPNAME.sqlite}, { 
    NSFilePath = "/var/mobile/Containers/Data/Application/9C5CB2CF-70C3-462B-BD26-E75AC4AF22E5/Documents/APPNAME.sqlite"; 
    NSSQLiteErrorDomain = 19; 
    NSUnderlyingException = "error during SQL execution : PRIMARY KEY must be unique"; 
} 

미드웨이을 프로젝트를 통해, 나는 개체 중 하나의 이름을 바 꾸었습니다. 그러나이 문제가 발생했을 때 전체 데이터 모델과 모든 범주를 처음부터 다시 작성했기 때문에 이것이 문제의 원인이라고 생각하지 않습니다.

제 연구에서이 오류는 SQLite 파일에 데이터를 미리 입력하여 앱에로드하는 앱에서 매우 일반적이라는 것을 알았습니다. 그러나 이것은 내 응용 프로그램의 경우가 아니므로 Stack Exchange에서이 문제에 대한 모든 솔루션이 도움이된다는 것을 알았습니다. 모두이 기존 파일을 편집하는 데 집중했습니다.

저는 또한 스택 익스체인지 (Stack Exchange)에 대해 비교적 새로운 편입니다. 따라서 제외 된 정보가 있으면 알려 주시면 추가하겠습니다. 당신이 줄 수있는 도움을 주셔서 감사합니다.

+0

앱에서 iCloud를 사용하고 있습니까? 또한 이러한 개체를 만드는 방법에 대한 정보가 있으면 도움이됩니다. –

+0

@Tom 없음, iCloud를 전혀 사용하지 않습니다. 그리고 나는 더 많은 정보로 포스트를 편집하려고 노력할 것이다. – austincarrig

답변

0

문제는 내가 메인 스레드에서 코어 데이터를 사용하려고 노력했지만 문제를 조사하지 않아서 제대로 수행하지 못했기 때문입니다.

0

저장중인 항목에 고유 한 것으로 표시된 필드가 있고 동일한 값으로 여러 데이터를 저장하려고 시도하는 것 같습니다. 엔티티의 데이터 모델 스크린 샷을 게시 할 수 있습니까?

+0

핵심 데이터에는 고유 한 값의 개념이 없습니다. –

관련 문제