从NSArray中获取另一个NSArray中的对象

时间:2012-03-22 00:32:00

标签: ios nsarray

对于使用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,但还没有找到任何东西)

2 个答案:

答案 0 :(得分:1)

我认为你还没有找到任何东西的原因是因为它不存在。您可以在NSArray上实现自己的类别,以递归方式使用谓词。也许其他人已经做过了。我不知道。

答案 1 :(得分:1)

对于你在做什么似乎有点不清楚。看起来你有一个多种类型的NSArray。而且你想要imageObjs数组。

如果你实际上有这样的NSArray,那么将它转换为NSDictionary会更容易。然后,您可以使用[dictionary valueForKey:@"Image Array"];从中获取图像数组。

目前,获取imageObjs数组的解决方案是[objtype1 objectAtIndex:1];,然后迭代该数组以使用其中的imageObjects。

for(ImageObject *obj in arr) {
    //do stuff
}