정수 필드가있는 테이블이 있습니다. 해당 필드에 몇 가지 다른 값이 들어있는 모든 행을 선택하고 싶습니다.NSPredicate를 사용하여 정수 목록을 대조하십시오.
나는이 사용하고 있습니다
[NSPredicate predicateWithFormat:@"myIntValue IN {1,2,3,4}"]
을하지만 이것은 단지 myIntValue
내가 뭘 잘못 1.
인 행을 반환?
정수 필드가있는 테이블이 있습니다. 해당 필드에 몇 가지 다른 값이 들어있는 모든 행을 선택하고 싶습니다.NSPredicate를 사용하여 정수 목록을 대조하십시오.
나는이 사용하고 있습니다
[NSPredicate predicateWithFormat:@"myIntValue IN {1,2,3,4}"]
을하지만 이것은 단지 myIntValue
내가 뭘 잘못 1.
인 행을 반환?
이 작동 : 문제가 처음 게시 된 이후이 변경되었습니다하지만이 모든 세에서 동일한 조건을 얻을 경우 나도 몰라
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSArray *idList = [NSArray arrayWithObjects:[NSNumber numberWithInt:1],
[NSNumber numberWithInt:2],
[NSNumber numberWithInt:3],
[NSNumber numberWithInt:4],
nil];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"idealForId IN $IDLIST"];
request.predicate = [predicate predicateWithSubstitutionVariables:
[NSDictionary dictionaryWithObject:idList forKey:@"IDLIST"]];
시도해 보셨습니까?
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"myIntValue IN %@",
[NSArray arrayWithObjects:@"1", @"2", @"3", @"4", nil]];
documentation을 여기에서 사용할 수 있습니다.
.
[NSPredicate predicateWithFormat:@"myIntValue IN {1, 2, 3, 4}"];
[NSPredicate predicateWithFormat:@"myIntValue IN {%d, %d, %d, %d}", 1, 2, 3, 4];
[NSPredicate predicateWithFormat:@"myIntValue IN %@", @[@1, @2, @3, @4]];
개체의 모든 것을 줄이지 않아도됩니다.
핵심 데이터는 개체 만 저장하므로 조건자를 만들 때 항상 스칼라를 개체로 변환해야합니다. – TechZen