핵심 데이터에서 일대일 관계로 만든 NSSET에서 속성의 최소 값을 얻음

StackOverflow https://stackoverflow.com/questions/1627447

  •  06-07-2019
  •  | 
  •  

문제

코어 데이터에 몇 가지 객체가 설정되어 있는데 그 중 하나는 "데크"이고 그 중 하나는 "카드"입니다. "카드"에는 "ID"를 포함하여 여러 번호가 매겨진 관계가 있습니다. "데크"는 카드와 일대일 관계가 있습니다.

ID와 같이 일부 번호가 매겨진 속성에 대한 최소 값을 가진 데크에서 카드를 찾는 가장 좋은 방법은 무엇입니까?

분명히 다음과 같은 카드 목록을 얻을 수 있습니다.

NSSet *cardList = self.cards;

나는 다음과 같이 최소한을 얻기 위해 표현을 구축 할 수 있다고 생각합니다.

NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"id"];
NSExpression *minExpression = [NSExpression expressionForFunction:@"min:" 
            arguments:[NSArray arrayWithObject:keyPathExpression]];

그러나 최소 값 (또는 최소 ID 값)으로 카드를 추출하기 위해 그 표현식을 사용하는 방법을 제시 할 수는 없습니다.

도움이 되었습니까?

해결책

키 값 코딩을 사용하여이를 수행 할 수 있습니다.

//assuming Card has an Id property which is a number
NSNumber *minId = [deck valueForKeyPath:@"cards.@min.Id"];

NSSet *minCards = [[deck cards] filteredSetUsingPredicate:[NSPredicate predicateWithFormat:@"Id==%@", minId]];

줄 것입니다 NSSet 누구의 카드 Id 속성은 최소값과 같습니다 deck.cards.

Key-Value 프로그래밍 안내서의 설명을 참조하십시오 설정 및 배열 연산자 더 많은 정보를 위해서.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top