iphone - iOS —将方法映射到数组

标签 iphone objective-c arrays ios map

在iOS中是否有更简洁的方法来执行以下操作?

假设我们有:

NSArray *existingArray;

而且我们的对象self拥有一个someMethod方法,该方法可以将existingArray中的对象作为输入并返回Foo类的对象。我们可以通过将someMethod应用于现存数组中的对象来创建一个新数组* derivedArray,如下所示:
NSMutableArray *derivedArray = [[NSMutableArray alloc]init];
for (id obj in existingArray) {
  [derivedArray addObject: [self someMethod: obj]];
}

我的问题是,有没有更简洁的方法?就像是:
NSArray *derivedArray = [existingArray arrayByMappingMethod: someMethod withObject: self];  

最佳答案

否。有一个makeObjectsPerformSelector:方法(以及其他一些相关方法),但是没有一个方法允许您从调用中获得结果。当然,您可以将您的方法添加为NSArray上的类别,但是Apple尚未提供执行此操作的方法。

在性能改进方面,变化

[[NSMutableArray alloc] init];


[[NSMutableArray alloc] initWithCapacity:[existingArray count]];

这将允许数组一次为所有对象分配内存,而不是每次添加对象时都重新分配。

关于iphone - iOS —将方法映射到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5439760/

相关文章:

ios - 如何创建带有渐变和高亮的 UIButton?

c - 在 C 中计算多边形面积的问题

iphone - iPad上的UIWebView初始化崩溃

iphone - iPhone 应用程序中的 Twitter 集成

ios - 用户必须登录才能使用 native 共享框

iphone - 如何检测进入 UIButton 框架的触摸?

ios - iOS删除内存中的应用程序(在后台)的顺序是什么?

c - 为什么我在 C 中打印数组时出现段错误?

java - 将数组列表发送和检索到 oracle 存储过程

iphone - 通过带导航 Controller 的按钮返回主视图