gpt4 book ai didi

objective-c - 数组。如何实现 map 功能?

转载 作者:技术小花猫 更新时间:2023-10-29 11:19:04 24 4
gpt4 key购买 nike

在 iOS 中,我想为 NSArray 实现映射功能。这是一个应用于数组的每个元素的函数。实现这一点的最佳方法是什么?

谢谢,
道格

最佳答案

您正在寻找 apply,因为 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

关于objective-c - 数组。如何实现 map 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10030109/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com