0
핵심 데이터를 사용하여 항상 특정 조건을 기반으로 한 단일 개체를 반환해야하지만 어떤 식 으로든 여러 개체를 반환하는 가져 오기를 만들었습니다. 핵심 데이터 술어/비교 작업 방식에 대한 내 이해의 결함이 있는지 궁금합니다. (이메일 클라이언트에 대한) 내 모델의 관련 부분의핵심 데이터 가져 오기가 예기치 않은 결과를 반환합니다.
개요 핵심 데이터에
Entity: Thread
Relevant Attributes: thread.folder, thread.threadId
Entity: Folder
Relevant Attributes: folder.threads, folder.name
, 다른 스레드가 동일한 스레드 ID를 가질 수 있지만, 항상 다른 폴더가 있어야합니다.
Example:
Thread 1: thread.threadId = 12345, thread.folder.name = @"inbox"
Thread 2: thread.threadId = 12345, thread.folder.name = @"important"
그래서, 나는 12345 AND "받은 편지함"의 folder.name의 threadId 모두 가지고 스레드를 가져올 경우, 나는 단지 하나 개의 스레드를 받아야한다고 가정한다. 그러나 나는 위의 상황에서 2를 얻는다.
- (Thread *)threadForFolder:(Folder *)folder threadId:(uint64_t)threadId
{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[Thread entityDescriptionInManagedObjectContext:self.managedObjectContext]];
[request setPredicate:[NSPredicate predicateWithFormat:@"threadId == %llu && folder == folder", threadId, folder]];
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:nil];
//ARRAY RETURNS TWO VALUES!?
//...more stuff
}
왜이 작동하지 않습니다 내가 핵심 데이터에서 가져 오는 오전 방법은 다음과
은?
오 ... my ... 선량! 고맙습니다. – jac300
모든 버그 만이 문제가 될 수 있다면 ... – HalR