2013-12-14 2 views
0

MagiteRecord를 사용하여 SQLite d/b에 코어 데이터 엔티티를 저장하는 iPad 앱이 있습니다. FTASync를 사용하여 핵심 데이터를 Parse.com과 동기화하기 전까지는 모든 것이 잘 작동했습니다.Core Data 엔티티와 함께 ​​mogenerator를 사용하면 데이터 저장소를 저장하는 데 오류가 발생합니다.

FTASync의 요구 사항 중 일부는 엔티티 클래스 파일을 생성하기 위해 Mogenerator를 사용해야한다는 것입니다. 지금, 나는이 오류 받고 있어요 : 나는 FTASync를 사용하여 내 핵심 데이터 저장소를 동기화 할 경우

2013-12-14 12:38:59.375 foo[5451:70b] Failed to save to data store: The operation couldn’t be completed. (Cocoa error 1560.) 
2013-12-14 12:38:59.380 foo[5451:70b] DetailedError: { 
    NSLocalizedDescription = "The operation couldn\U2019t be completed. (Cocoa error 1570.)"; 
    NSValidationErrorKey = objectId; 
    NSValidationErrorObject = "<PreferenceData: 0x1149c3a0> (entity: PreferenceData; id: 0x114a7eb0 <x-coredata://03C39CC9-AC6C-4E56-BB5A-67038ACB6801/PreferenceData/p25> ; data: {\n aAddlSvcs1 = \"\";\n aAddlSvcs10 = \"\";\n aAddlSvcs11 = \"\";\n aAddlSvcs12 = \"\";\n aAddlSvcs2 = \"\";\n aAddlSvcs3 = \"\";\n aAddlSvcs4 = \"\";\n aAddlSvcs5 = \"\";\n aAddlSvcs6 = \"\";\n aAddlSvcs7 = \"\";\n aAddlSvcs8 = \"\";\n aAddlSvcs9 = \"\";\n aApptInterval = \"\";\n aDeleteOldAppts = \"-1\";\n aDoubleBooking = \"-1\";\n aHideHelpBtns = 0;\n aHourFormat12 = 0;\n aShopCloses = 1200;\n aShopOpens = 1000;\n createdHere = 1;\n deleted = 0;\n objectId = nil;\n syncStatus = 2;\n updatedAt = nil;\n})"; 
} 

을, 나는 mogenerator를 사용하는이 .

그래서 "완료 할 수 없습니다"이외에 정확히 무엇이 나에게 말하고있는 것입니까? 이 문제를 어떻게 해결할 수 있습니까?

업데이트 : 이 당신은 모델 편집기로 xcdatamodel 일부 유효성 검사 규칙을 정의 Xcode의 데이터 모델 경위

enter image description here

+0

'NSManagedObject' 자체에'-objectID' 메소드가 정의되어있을 때'objectId'가 엔티티의 속성으로 정의 되었기 때문일 수 있습니다. – indragie

+0

또 다른 생각 : 'NSValidationErrorKey = objectId'는 그 속성이 핵심 데이터 모델에 정의 된 일부 제약 조건을 충족시키지 않는 것처럼 들립니다. 예를 들어, 속성이 * optional *이 아닌 경우,'objectId = nil'은 유효한 값이 아닙니다. –

+0

** 업데이트 ** * objectID *는 mogenerator에 의해 생성 된 코드에 있습니다! 내가 말했듯이, 전동기를 사용하지 않으면 FTASync를 사용할 수 없습니다. 이것에 대한 아이디어가 있습니까? – SpokaneDude

답변

1

에서 이미지 : 최소/최대 값, 필요한 관계, 최소/최대 문자열 길이.

GUI를 통해 개체를 삽입하면 유효성 검사에 실패한 개체를 만들 때 즉각적인 피드백을 볼 수 있습니다. 그러나 코드에서 오브젝트를 작성하거나 수정하면 관리 오브젝트 컨텍스트를 저장하려고 시도하지 않으면 오류가 표시되지 않습니다.

PreferenceData 인스턴스를 생성하는 코드 내에서 -validateForUpdate : (또는 -validateForInsert : 또는 -validateForDelete :)를 호출 할 수 있습니다. 객체를 빌드 할 때 여러 번 호출하면 잘못 될 위치를 알 수 있습니다.

+0

나는 그것을 시도하고 당신에게 돌아갈거야 ... 응답 주셔서 감사합니다 ... – SpokaneDude

+0

포기 ... 위의 주석을 참조하십시오. 이걸 보아 주셔서 감사합니다 ... – SpokaneDude