2013-10-13 2 views
0
이 일대 < 법인 "회의"의 관계 --- >> "사용자"

코어 데이터 : 일대 다 관계와 술어를 사용

내가 "회의"에 대한 NSManagedSubclass을 만들어

그것은 속성이 있습니다 :

@property (nonatomic, retain) NSSet *users; 

* 사용자가 저장 한 개체가 잘 보이며 볼 수 있습니다. 하지만 가져 오려고하면 아무 일도 일어나지 않습니다. 블록 안에 브레이크 포인트 설정이 있고 가져 오기 블록이 중단 점에 도달하지 않는 것 같습니다. 오류 없음. 응용 프로그램이 아직 실행 중입니다.

 NSString *userName = @"iphone"; 
     NSLog(@"Username %@", userName); 

     NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Meeting"]; 
     NSPredicate *predicate = [NSPredicate predicateWithFormat:@"users.username == %@", userName]; 
     NSLog(@"Predicate %@", predicate); 
     [request setPredicate:predicate]; 

     [self.managedObjectContext executeFetchRequest:request onSuccess:^(NSArray *results) 
     { // I have setup the breakpoint here 
      NSLog(@"results.count %i", results.count); 

      if(results.count > 0) 
      { 
       NSLog(@"object found"); 
      } 
     }onFailure:^(NSError *error) { 
        NSLog(@"There was an error! %@", error); 
     }]; 

로그 :

나는 다음과 같은 코드가

2013-10-12 20:10:19.200 App[3128:c07] Username iphone 
2013-10-12 20:10:19.200 App[3128:c07] Predicate users.username == "iphone" 

내가 잘 회의에서 다른 속성에 대한 가져올 수 있습니다. 즉, 술어 행을 다음으로 대체하는 경우 :

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"meetings_id == %@", meetings_id]; 

그리고 중단 점이 "객체를 찾았습니다"를 표시합니다.

다시, 사용자 관계 내에서 "아이폰"사용자를 볼 수 있습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

+0

이다 : 나는 당신이 원하는 것이 무엇이라고 생각하기 때문에

는 변경이 시도? – DogCoffee

+0

무엇을 의미합니까? 블록은 다른 속성과도 잘 작동합니다. – user1107173

답변

2

일대 다 관계의 경우 의도 된 동작이 무엇인지 명시하는 조건부 수정자를 사용해야합니다. Meeting을 검색 중이므로 Meeting 사용자가 지정한 사용자 이름이 ALL 인 사용자 또는 ANY 명의 사용자가 요구 사항을 충족하는 사용자 (자세한 내용은 여기 documentation 참조)에서만 CoreData가 귀하의 술어 users.username == %@을 검색 할 수 없습니다. 그것 때문에 블록에

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY users.username == %@", userName] 
+0

감사합니다. 나는 똑같은 행동을하고있다. 내 로그 : 2013-10-12 20 : 38 : 34.367 App [3532 : c07] 아이폰 2013-10-12 20:38:34.367 앱 [3532 : c07] 조건부 ANY users.username == "iphone" – user1107173

+0

사용자의 모든 개체를 모두 표시 할 수있는 방법이 있습니까? – user1107173

관련 문제