코코아에서 큰 nsdictionary의 특정 하위 집합에 어떻게 액세스 할 수 있습니까?
-
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
제휴하지 않습니다 StackOverflow