2009-08-03 8 views
2

아래 코드를 사용하여 가져 오기 요청을 만듭니다. 내가 겪고있는 문제는 가져 오기 요청 데이터를 가져 와서 그것으로 변수에 넣는 것처럼 (내가 firstManagedObject 변수로 아래에서하려고하는 것처럼) 뭔가를하는 것입니다. 즉, 나는 "(엔티티 : 질문 : ID : 0x10b6250 <의 형태가 아닌 사용 가능한 데이터를 얻기 위해 내가 만든"결과 "NSArray (아래 코드에 표시)를 어떻게해야하는지 이해하지 못합니다. coredata : // 90FA9FD7-4CFC-4039-8A0C-40116055CADF/질문/p2; 데이터 : 오류) 또는 이와 유사한. 내가 마지막 줄에서 작성한 NSLog에서 executeFetchRequest (아래 굵은 글씨로 표시)에서 NSArray를 채운 "결과"를 기록하지만 실제 "Question"텍스트를 얻으려면 다음 단계를 수행하는 방법을 모릅니다. 어떤 도움을 주셔서 감사합니다. 감사.코어 데이터 가져 오기 결과

NSLog 결과 :

가 요청 getQuestionsByParent 페치 2 실측치 (서브 변수 { formId = "9822217D-6A55-4475-88EC-E2552B336E1B"; sectionNumber = 2;} 결과 :( (엔터티 : 질문 : ID : 0x10a8720 x-coredata : // 90FA9FD7-4CFC-4039-8A0C-40116055CADF/질문/p2; 데이터 : 오류), (엔터티 : 질문 : ID : 0x1092920 x-coredata : // 90FA9FD7- 4CFC-4039-8A0C-40116055CADF/질문/p4; 데이터) : ))

코드 :

NSManagedObjectContext *moc_ = [self managedObjectContext]; 

    NSMutableDictionary *dictionary=[[NSMutableDictionary alloc]init]; 
    [dictionary setObject:section.ordinal forKey:@"sectionNumber"]; 
    [dictionary setObject:section.parent.id forKey:@"formId"]; 

    NSError *error = nil;  
    NSManagedObjectModel *model = [[moc_ persistentStoreCoordinator] managedObjectModel]; 
    NSFetchRequest *fetchRequest = [model fetchRequestFromTemplateWithName:@"getQuestionsByParent" substitutionVariables:dictionary]; 
    NSAssert(fetchRequest, @"Can't find question fetch request"); 

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"ordinal" ascending:YES]; 
    NSArray *sortDescriptors = [[NSMutableArray alloc] initWithObjects:sortDescriptor, nil]; 
    [fetchRequest setSortDescriptors:sortDescriptors]; 

    NSArray *result = [[NSArray alloc] init]; 
    result = [moc_ executeFetchRequest:fetchRequest error:&error]; 
    //return result; 

    NSLog(@"fetch request getQuestionsByParent: %u found (sub variables:%@, results:%@)", [result count], dictionary, result); 

    NSManagedObject *firstManagedObject = [result objectAtIndex:0]; 

답변

3

데이터 가져 오기가 완료되었습니다. 객체의 사용자 정의 하위 클래스를 구현 한 경우 속성을 쿼리 할 수 ​​있습니다. 그렇지 않은 경우 KVC를 사용하여 객체에 액세스 할 수 있습니다. 그래서 예를 들어, 당신은 속성이 다음 "myAttribute"라고 한 가정 :

NSManagedObject *firstManagedObject = [result objectAtIndex:0]; 
NSLog(@"firstObject.myAttribute: %@", [firstObject valueForKey:@"myAttribute"]); 

을 그리고 당신은 객체 (질문)에 대한 사용자 정의 서브 클래스가있는 경우 그 선언 등의 속성 동적 속성은 다음은 다음과 같습니다

Question *firstQuestion = [result objectAtIndex:0]; 
NSLog(@"firstQuestion.myAttribute: %@", firstQuestion.myAttribute); 
관련 문제