我怎样才能访问可可大的NSDictionary的特定子集?
-
22-07-2019 - |
题
我有含有大量的自定义对象的单一的NSDictionary对象。这些对象将或者是B类或C类,这两者从类A.继承如果对象是B型的,他们将有一个内部标志(kindOfCIsh),其将被用于未来的分组。
我如何,我在程序不同的时间,获取包含这些对象的不同分组一个NSDictionary(或NSArray的)?在一种情况下,我会希望所有B的,但另一个时间我希望所有的C的对象,加上满足乙对象(kindOfCIsh == TRUE)。
有没有一种简单的方法来获得访问这些子集?也许使用过滤谓词?我可以,当然,循环通过整个词典和手动建立所需的子集,但是我有一种感觉,有一种更好的方法。
任何帮助理解。
解决方案
[[myDictionary allValues] filteredArrayUsingPredicate:预解码值];
其他提示
可以使用类别
的代码是这样的
@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