반응형
iPhone-NSArray 객체에서 고유 값 가져 오기
I는 한 NSArray
사용자 정의 클래스의 개체를 형성했다. 이 클래스에는 3 (city, state, zip) 문자열 속성이 있습니다. 에서 모든 고유 한 상태 값을 얻고 싶습니다 array
.
나는 NSPredicate
수업을 읽었 지만이 경우 사용 방법을 많이 만들지 못했습니다. 내가 찾을 수있는 유일한 예는 문자열 연산이었습니다.
누군가 나를 도울 수 있습니까?
완전히 간단한 하나의 라이너 :
NSSet *uniqueStates = [NSSet setWithArray:[myArrayOfCustomObjects valueForKey:@"state"]];
트릭은입니다 valueForKey:
방법 NSArray
. 그러면 배열 ( myArrayOfCustomObjects
) 을 반복 -state
하고 각 개체 에서 메서드를 호출 하고 결과 배열을 만듭니다. 그런 다음 NSSet
결과 상태 배열로 를 만들어 중복을 제거합니다.
iOS 5 및 OS X 10.7부터이 작업도 수행 할 수있는 새로운 클래스가 있습니다 NSOrderedSet
.. 정렬 된 세트의 장점은 중복 항목을 제거 할뿐만 아니라 상대적인 순서도 유지한다는 것입니다.
NSArray *states = [myArrayOfCustomObjects valueForKey:@"state"];
NSOrderedSet *orderedSet = [NSOrderedSet orderedSetWithArray:states];
NSSet *uniqueStates = [orderedSet set];
keypaths를 살펴 보십시오 . 그들은 매우 강력하며 대부분의 경우 NSPredicate 클래스 대신 사용합니다. 다음은 귀하의 예에서 사용하는 방법입니다 ...
NSArray *uniqueStates;
uniqueStates = [customObjects valueForKeyPath:@"@distinctUnionOfObjects.state"];
사용 주 valueForKeyPath 대신 valueForKey을 .
다음은 더 자세한 / 조언 된 예입니다 ...
NSDictionary *arnold = [NSDictionary dictionaryWithObjectsAndKeys:@"arnold", @"name", @"california", @"state", nil];
NSDictionary *jimmy = [NSDictionary dictionaryWithObjectsAndKeys:@"jimmy", @"name", @"new york", @"state", nil];
NSDictionary *henry = [NSDictionary dictionaryWithObjectsAndKeys:@"henry", @"name", @"michigan", @"state", nil];
NSDictionary *woz = [NSDictionary dictionaryWithObjectsAndKeys:@"woz", @"name", @"california", @"state", nil];
NSArray *people = [NSArray arrayWithObjects:arnold, jimmy, henry, woz, nil];
NSLog(@"Unique States:\n %@", [people valueForKeyPath:@"@distinctUnionOfObjects.state"]);
// OUTPUT
// Unique States:
// "california",
// "michigan",
// "new york"
참조 URL : https://stackoverflow.com/questions/1439564/iphone-getting-unique-values-from-nsarray-object
반응형
'IT TIP' 카테고리의 다른 글
Vim에서 파일의 모든 줄을 한 줄로 결합하는 가장 간단한 방법은 무엇입니까? (0) | 2020.12.31 |
---|---|
한 번에 모든 활동 완료 (0) | 2020.12.31 |
스토리 보드를 통해 탐색 모음에 버튼을 추가 할 수 있습니까? (0) | 2020.12.31 |
Visual Studio Code의 JSX 또는 HTML 자동 완성 (0) | 2020.12.31 |
PHP substr이 문자가 아닌 단어로 끝나는 지 확인 (0) | 2020.12.31 |