코어 데이터에 여러 객체가 설정되어 있는데 그 중 하나는 "갑"이고 그 중 하나는 "카드"입니다. . "카드"에는 "id"를 비롯한 몇 개의 번호가 매겨진 관계가 있습니다. "갑판"은 카드와 일대 다의 관계가 있습니다.코어 데이터에서 일대 다 관계로 만들어진 NSSet의 속성 값 최소값 얻기
ID와 같이 번호가 지정된 속성에 최소값을 갖는 카드를 찾는 가장 좋은 방법은 무엇입니까? 나는이 같은 최소 얻기 위해 식을 만들 수 있다고 생각
NSSet *cardList = self.cards;
을 :
분명히 나는이 같은 카드의 목록을 얻을 수
NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"id"];
NSExpression *minExpression = [NSExpression expressionForFunction:@"min:"
arguments:[NSArray arrayWithObject:keyPathExpression]];
을하지만 확실히 조사 할 수 없습니다 이 표현식을 사용하여 최소값 id (또는 최소값 id)를 가진 카드를 추출하는 방법을 설명합니다.
//assuming Card has an Id property which is a number
NSNumber *minId = [deck valueForKeyPath:@"[email protected]"];
NSSet *minCards = [[deck cards] filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"Id==%@", minId]];
이 Id
재산 deck.cards
의 최소와 동일한 카드의 NSSet
줄 것이다 :
, 나는 배리 Wark의 조언에 따라 두 가지 기능을 다음 썼다 (있는 NSString *) leastId { \t있는 NSString * 키 패스 = [있는 NSString stringWithFormat을 : @ "카드 @. 최소 % @ ", 최소값]; \t NSNumber * minId = [self valueForKeyPath : keyPath]; \t \t \t return minId; } - (NSSet *) cardsForLeast (는 NSString *) leastId { \t \t는 NSString * 키 패스 = [있는 NSString stringWithFormat : @ ".. 카드 @ %의 분 @"leastId]; \t NSNumber * minId = [self valueForKeyPath : keyPath]; \t \t NSSet * minCards = [selfCards filteredSetUsingPredicate : [NSPredicate predicateWithFormat : @ "id == % @", minId]]; \t \t \t return minCards; } –