dug*_*gla 9 mapreduce objective-c nsarray ios
在iOS中,我想为NSArray实现map函数.这是一个应用于数组的每个元素的函数.实现这个的最佳方法是什么?
谢谢,
道格
你可以使用的enumerateObjectsUsingBlock:功能NSArray.
[myArray enumerateObjectsUsingBlock:^(id x, NSUInteger index, BOOL *stop) {
// Body of the function
}];
Run Code Online (Sandbox Code Playgroud)
小智 6
您正在寻找apply as map应该返回一个包含转换值的新数组.
但是,您可以通过创建自定义类别来使用您查找的方法扩充NSArray.这里有两个例子 - apply和map:
@implementation NSArray (CMMap)
- (NSArray *) map:(id(^)(id obj))block {
NSMutableArray *a = @[].mutableCopy;
for (id o in self) {
id on = block(o);
if (!on) {
NSLog(@"NSArray::map() - object returned by block is nil!");
abort();
}
[a addObject: on];
}
return [NSArray arrayWithArray: a];
}
- (void) apply:(void(^)(id obj))block {
for (id o in self) {
block(o);
}
}
@end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7915 次 |
| 最近记录: |