我有一个包含多个对象的数组,我想为每个值添加 90.0。 我想使用枚举来做到这一点。然后我创建这个:
[myArray enumerateObjectsWithOptions:NSEnumerationConcurrent
usingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
double aValue = [obj doubleValue];
aValue += 90.0;
obj = [NSNumber numberWithDouble:aValue];
}];
我的问题是关于最后一行。我获取对象值,添加 90,然后必须将其存储回来。因为这有点奇怪,因为我正在对象级别上工作,所以我不确定第三行是否具有正确的语法来将更新后的值存储回对象上。 Xcode 提示“obj”从未被使用,因为它认为我将数字分配给 obj 是为了使用它,但我只是将值存储回来。
这是正确的吗?
最佳答案
obj
不是引用或指针,您实际上无法将其存储回来。 NSArray
不支持此功能。您可以做的是不存储 NSNumbers,而是存储指向 NSNumber(即 NSNumber**)的指针并更新对新对象的引用。
将数字存储在普通的 double[]
数组中也可以。
关于iPhone - block 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5098245/