【问题标题】:How to get only objects of one type from an array?如何从数组中只获取一种类型的对象?
【发布时间】:2014-08-12 00:38:25
【问题描述】:

(Xcode IOS) - 我正在尝试创建一种方法,在滚动之前预取所有图像并将它们加载到 tableView 中(使用 SDWebImage)。总之:

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

我需要做的是获取@[ [PFFile], [dateCreated], [other info] ] -> @[ [PFFile] ]这个数组

换句话说,我需要从整个数组中创建一个仅包含 PFFiles 的数组。我在想这样的事情(伪代码)

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

【问题讨论】:

  • 既然你使用的是数组,那么这里的键是什么意思?更具体地说,您的数组中的对象是什么?

标签: ios objective-c arrays parsing


【解决方案1】:

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

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

我喜欢这种语法,因为如果对象通过了您可能想要编写的任何类型的测试并且它是单行的,您可以使用块返回 YES/NO。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2012-04-13
      • 2015-04-24
      • 2017-09-19
      • 2016-01-20
      • 2013-09-05
      • 2022-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多