현재 코어 데이터에 이상한 문제가 있습니다. 내가 쓰고있는 응용 프로그램은 핵심 데이터 개체로 변환되어 저장되는 서버에서 많은 데이터를 다운로드합니다. 또한 장치는 새 개체를 만들어 서버에 업로드 할 수 있습니다. 이러한 객체 중 하나는 본질적으로 파일을 나타내는 문서입니다.코어 데이터 관련 오브젝트가 삭제 중임
이 모델의 모델은 MPDocument
입니다. 문서를 MPPlace
모델과 MPUser
모델에 연결할 수도 있습니다 (사용자는 문서를 만들고 문서는 작업 영역에 속합니다).
서버에서 개체를 다운로드하는 데 아무런 문제가 없으며 모든 관계를 만들고 올바르게 할당하고 있습니다. 문제는 장치 자체에서 새 문서를 만들려고 할 때 발생합니다. 문서가 만들어지고 모든 관계를 설정하면 문서가 업로드되고 모든 것이 잘된 것처럼 보입니다. 그러나 핵심 데이터 뷰어 도구를 통해 데이터베이스를 검사 할 때 모든 문서 개체에는 작업 영역 관계에 대한 가치가 없습니다. 이것은 새로운 문서뿐만 아니라 모든 기존 문서에서 발생합니다. 나는 정말로 무슨 일이 일어나는지 알 수 없다!
그래서 같은 문서를 만드는거야 :
성공 블록이 호출MPDocumentUploader *uploader = [[MPDocumentUploader alloc] initWithDocument:doc];
uploader.requestDelegate = self;
uploader.successBlock = ^(MPDocumentUploader *uploader, MPDocument *doc) {
NSLog(@"Got doc = %@", doc);
};
[uploader upload];
, 문서 객체가 가지고있다 :
MPUser *current = [MPUser currentUser];
MPDocument *doc = [[MPDocument alloc] init];
doc.name = @"App Upload";
doc.local_url = [NSString stringWithFormat:@"%@", [info valueForKey:UIImagePickerControllerReferenceURL]];
doc.local_url_type = @(MPDocumentUrlTypeAsset);
doc.user = current;
[current addCreatedDocumentsObject:doc];
[doc setValue:self.place forKey:@"place"];
[self.place addDocumentsObject:doc];
나는 모든 업로드를 처리하는 문서 업 로더가 장소 관계가 설정되었습니다. 그래서 일단 업로드가 끝나고 나면 장소가 설정되므로 관계가 완전히 삭제 된 곳으로 지금은 정말 혼란 스럽습니다.
문서 업 로더는 다음과 같이 보입니다 :
- (void) upload
{
.... retrieve the local file and turn into NSData. This is fine
MPRequest *request = [MPRequest requestWithURL:_url];
[MPUser signRequest:request];
[request setDelegate:_requestDelegate];
[request setRequestMethod:@"POST"];
[request mountDocumentUploader:self];
[request submit:^(MPResponse *resp, NSError *error) {
if (!error) {
NSDictionary *data = (NSDictionary *)[resp paramForKey:@"data"];
if (data) {
NSLog(@"Document = %@", _document);
_document.url = [data objectForKey:@"url"];
_document.objID = [data objectForKey:@"id"];
[_document saveLocally];
}
if (_successBlock) {
_successBlock(self, _document);
}
} else {
if (_failBlock) {
_failBlock(self, error);
}
}
}];
}
MPRequest
클래스는 모든 실제 업로드 및 서버 요청을 처리를하지만, 실제로 MPDocument 물체를 만지하지 않습니다.
나는 무슨 일이 일어나고 있는지, 왜 그것이 관계를 정리하는지 알 수 없습니다. 제발 누군가 도와 줄 수 있어요!?
업데이트
나는 주위를 연주하고, 제출 블록이 호출 될 때 오류가 발생하는 것으로 나타났습니다. 댓글 달기
이 의미하는대로 작동하지만, 지금은 분명히 그 값이 설정되어 있지 않습니다. 한 번에 하나씩 그 라인을 하나씩 추가하면 문제가 발생하므로 간단히 편집하면 문제가 해결됩니다. 아직 아무런 단서가없는 이유는 무엇입니까 : (