문제

실제로 iPhone 프로그래밍을 사용하고 앱을 성공적으로 만들었지 만 Nsset에 저장된 값을 검색하는 방법을 알아낼 수는 없습니다.나는 서로 관련된 핵심 데이터에 2 개의 엔티티가 있습니다.사용자가 일대일까지 점수를 얻습니다.사용자 엔티티에는 firsnname 및 lastname 속성 및 점수 엔터티가 ontime, wasabsent 및 datein 속성이 있습니다.FirstName 및 LastName을 기반으로 술어를 사용하여 가져온 다음 가져 오기를 실행합니다.가져 오기가 성공적이며 두 엔티티를 하나의 가져 오기 호출로 가져올 수 있습니다.그러나 점수 엔티티의 값에 대한 값을 얻을 수 없습니다.내가 무엇이든, 그것은 항상 nsset 객체를 반환합니다.내가하고 싶은 것은 ontime 및 wasabsent 속성에 저장된 부울 값을 검색하고 uiswitch에 공급하는 것입니다.

AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
self.managedObject = delegate.managedObjectContext;

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Student"];
    fetchRequest.predicate = [NSPredicate predicateWithFormat:@"firstname == %@ AND lastname == %@", @"James", @"Smith"];

NSError *error = nil;
self.scoresArray = [self.managedObject executeFetchRequest:fetchRequest error:&error];

if ([self.scoresArray count]) {

    Student *student = [self.scoresArray objectAtIndex:0];
    NSSet *score = student.scores;
    NSArray *arr = [score allObjects];
    NSLog(@"%@", [arr objectAtIndex:0]);
}
.

nsset을 사용하는 대신 스코어 엔티티에 직접 액세스 할 수있는 경우, 점 표기법을 사용하여 참조 할 수있는 방법 이상이 될 수 있습니다. 어떤 도움도 감사 할 것입니다.감사합니다

도움이 되었습니까?

해결책

다음과 같은 것을 사용하십시오 :

AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
self.managedObjectContext = delegate.managedObjectContext;

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Student"];
    fetchRequest.predicate = [NSPredicate predicateWithFormat:@"firstname == %@ AND lastname == %@", @"James", @"Smith"];

NSError *error = nil;
NSArray *studentArray = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];

for (Student *student in studentArray) {

    Student *student = [self.studentArray objectAtIndex:0];

    NSLog(@" student is %@ %@", student.firstname, student.lastname);

    for (Score *score in student.scores) {
       // Do something with score
      NSLog(@"   score is %@", score);
    }
}
.

다른 팁

학생이 점수와 관련된 (및 속성이 scores의 속성이 있음), student.scores 값을 얻을 때 NSSet의 NSSet 인 정렬되지 않은 컬렉션을 반환합니다.그래서 NSSET과 함께 일하는 것처럼 방금 작업하고 일반적으로 컬렉션이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top