对于使用ARC的iOS 5.0应用程序,我有一个NSArray对象,其中包含其他对象的NSArray。是否有可能从内部数组中提取对象列表而无需迭代数组,例如用NSpredicate或valueForKeyPath说。为了更清楚,我有:
NSArray *objtype1 contains
-id
-NSArray *imageObjs containing imageObjects
-imagetype = 1 <--1st imageObject
imageURL1
-imagetype = 2 <--2nd imageObject
imageURL2
-NSArray *objtype2
-other parameters
我需要提取imageType = 1 imageObjects的NSArray以传入进一步处理。这可能吗? (我正在看NSpredicate和valueForKeyPath,但还没有找到任何东西)
答案 0 :(得分:1)
我认为你还没有找到任何东西的原因是因为它不存在。您可以在NSArray
上实现自己的类别,以递归方式使用谓词。也许其他人已经做过了。我不知道。
答案 1 :(得分:1)
如果你实际上有这样的NSArray,那么将它转换为NSDictionary会更容易。然后,您可以使用[dictionary valueForKey:@"Image Array"];
从中获取图像数组。
目前,获取imageObjs数组的解决方案是[objtype1 objectAtIndex:1];
,然后迭代该数组以使用其中的imageObjects。
for(ImageObject *obj in arr) {
//do stuff
}