코코아에서 큰 nsdictionary의 특정 하위 집합에 어떻게 액세스 할 수 있습니까?

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

  •  22-07-2019
  •  | 
  •  

문제

많은 사용자 정의 객체가 포함 된 단일 nsdictionary 객체가 있습니다. 객체는 클래스 B 또는 클래스 C로 이루어지며, 둘 다 클래스 A에서 상속됩니다. 객체가 유형 B 인 경우 향후 그룹화에 사용될 내부 플래그 (Kindofcish)가 있습니다.

내 프로그램의 다른 시간에 해당 객체의 다른 그룹을 포함하는 nsdictionary (또는 nsarray)를 어떻게 얻을 수 있습니까? 어떤 경우에는 B를 모두 원하지만 다른 시간에 나는 모든 C 객체와 만족하는 B 객체를 원할 것입니다 (Kindofcish == true).

이 서브 세트에 액세스 할 수있는 간단한 방법이 있습니까? 아마도 필터를 사용하는 것이 있습니까? 물론 전체 사전을 통과하고 필요한 서브 세트를 수동으로 구축 할 수는 있지만 더 나은 방법이 있다는 느낌이 들었습니다.

모든 도움이 감사합니다.

도움이 되었습니까?

해결책

[MyDictionary AllValues] FilterrayusingPredicate : pred];

다른 팁

카테고리를 사용할 수 있습니다

코드는 다음과 같습니다

@interface NSDictionary (dictionaryForClass)

  -(NSMutableDictionary *) dictionaryWithObjectsKindOfClass:(Class)myClass;

@end

@implementation NSDictionary (dictionaryForClass)

-(NSMutableDictionary *) dictionaryWithObjectsKindOfClass:(Class)myClass;
{
  NSMutableDictionary *ret = [[[NSMutableDictionary alloc] init] autorelease];

  for (id object in self) {
    if ([object isKindOfClass:myClass]) {
       [ret addObject:object];
    }  
  }  
  return ret;

}

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