0
내 아이폰 OS 응용 프로그램에 coredata을 가지고,하지만 내 경우에는 다음이 포함 된 질문 테이블 인 테이블에서 모든 값을 모으고있는 중이 야 :CoreData 및 자 NSPredicate
@property (nonatomic, retain) NSString * answerA;
@property (nonatomic, retain) NSString * answerB;
@property (nonatomic, retain) NSString * answerC;
@property (nonatomic, retain) NSString * answerD;
@property (nonatomic, retain) NSString * correctAnswer;
@property (nonatomic, retain) NSString * question;
@property (nonatomic, retain) NSString * timeStampLastUsed;
@property (nonatomic, retain) NSNumber * gameType;
@property (nonatomic, retain) NSString * continent;
I을
NSError *error;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Questions" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSArray *fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
내가 원하는 것은 특정 게임 타입을 가지고있는 NSArray * fetchedObjects에만 질문에 가지고있다 :이 방법은 모든 값을 얻고있다.
NSPredicate로 어떻게 할 수 있습니까? 당신의 인출 요청에 조건을 설정하여
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"gameType == %i", 0]];
:
감사 안부
gameType은 NSNumber 객체이므로 '@ "gameType.intValue == % i", 0'을 수행하는 것이 좋습니다. 일반적으로'intValue'가 생략되었지만 여전히 좋은 습관입니다. – mrosales
이제 나는 더 진보 된 것들을하려고합니다. 유럽 대륙에있는 모든 게임 유형을 얻고 싶습니다 : NSPredicate * predicate = [NSPredicate predicateWithFormat : @ "((gameType.intValue == % i) 또는 (gameType.intValue == % i) OR (gameType.intValue == % i)) AND (continent.intValue == % i)", 0,2,3 , 0]; 그러나 이것은 내가 기대하는 것을 돌려주지 않습니다. 유럽 대륙 (0) 인 게임 유형 0, 2를 얻고 싶습니다. 누구든지 나를 도울 수 있습니까? – mmm
제공된 매개 변수를 사용하면 술어가 정확 해 보입니다. 어떤 결과가 있습니까? 필자는 필터링 된 결과를 테스트하기 위해'predicateWithBlock :'을 만든 다음, 필요한 결과를 얻은 후에 이것을 다시'predicateWithFormat :'으로 리팩토링하는 것이 더 쉽다는 것을 알았습니다. – CaptainRedmuff