2012-04-01 3 views
2


나는이 같은 자 NSPredicate를 사용해야합니다자 NSPredicate는

NSString *authorNameAndLastName = @"Name LastName"; 
[NSPredicate predicateWithFormat:@"%@ beginswith[cd] %K",authorNameAndLastName,@"name"] 

을했지만 작동하지 않습니다와 나는이 예외가 나타날 수 많은 후

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'unimplemented SQL generation for predicate ("Name LastName" BEGINSWITH[cd] name).' 

을 try의 나는 predicate 표현식의 오른쪽에 keypath (name)을 넣을 수 없다고 가정한다.
맞죠?
이 특정한 경우에 필요한 것을 얻을 수있는 해결 방법이 있습니까?

답변

0

이것은 배열과 세트에서만 작동합니다. 핵심 데이터는이 유형의 술어를 지원하지 않습니다.

[NSPredicate predicateWithBlock :]을 (를) 사용해 보셨나요?

NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(YourObject *object, NSDictionary *bindings) { 

    NSComparisonResult result = [authorNameAndLastName object.name options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [object.name length])]; 
    if (result == NSOrderedSame) { 
     return YES; 
    } 

    return NO; 
}]; 
+0

SQLite 요청에서 조건자를 사용하기 때문에 할 수 없습니다. – simone

관련 문제