如何从数组中只获取一种类型的对象?

时间:2014-08-12 00:38:26

标签: ios objective-c arrays parsing

(Xcode IOS) - 我正在尝试制作一个预取所有图像并在滚动之前将它们加载到tableView中的方法(使用SDWebImage)。无论如何:

我有一个messages数组,每条“消息”都由几个不同的密钥组成,PFFiledateCreatedsender等......

我需要做的是使用@[ [PFFile], [dateCreated], [other info] ] -> @[ [PFFile] ]

这个数组

换句话说,我需要从整个数组中创建一个只有PFFiles的数组。我在考虑这样的事情(伪代码)

self.urls = [self.messages objectsWithKey:@[PFFiles]];

2 个答案:

答案 0 :(得分:1)

听起来你在问如何过滤数组。

self.urls = [self.messages objectsAtIndexes:[self.messages indexesOfObjectsPassingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
    return [obj isKindOfClass:[PFFile class]];
}]];

我喜欢这种语法,因为你可以使用一个块来返回YES / NO,如果对象通过了你想写的任何类型的测试而且它是一行的。

答案 1 :(得分:0)

使用NSDictionary和NSArray的组合怎么样? 您可以将数组对象放在字典对象中。