ios - 如何使用快速枚举修改 NSArray 的字符串元素?

标签 ios objective-c cocoa-touch cocoa nsarray

<分区>

谁能建议如何使用快速枚举将 NSArray 的元素串起来。用普通的 for 循环做同样的事情非常容易。下面的代码工作正常

_tempArray = [[NSMutableArray alloc] initWithObjects:@"A",@"B",@"C",@"D",@"E",@"F", nil];

NSUInteger i=0;
for (; i<[_tempArray count]; i++) {
     if ([[_tempArray objectAtIndex:i] isEqualToString:@"A"]) {
            [_tempArray replaceObjectAtIndex:i withObject:@"a"];
      }
}

我想对快速枚举做与上面代码相​​同的事情。我尝试了下面的代码但它给出了*****错误:Collection <__NSArrayM: 0x610000043090> was mutated while being enumerated.******,这意味着枚举时无法修改集合。谁能提出任何实现它的方法。**

NSUInteger j=0;
    for (NSString *temp in _tempArray) {
        if ([temp isEqualToString:@"A"]) {
            [_tempArray replaceObjectAtIndex:j withObject:@"a"];
        }
        j++;
    }

最佳答案

How to modify string element of a NSArray using fast enumeration?

不要。您不应该在枚举期间修改数组。这不是任意限制——这样做可能会导致逻辑错误。

如果要修改/转换数组,请改用显式索引的 for 循环。

关于ios - 如何使用快速枚举修改 NSArray 的字符串元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678078/

上一篇:ios - 在 iOS 7 的后台一定时间后执行一行代码

下一篇:ios - 重复调用 "GPUImagePicture ProcessImage"内存警告导致App崩溃

相关文章:

ios - 集成和使用 W3i iOS Advertiser SDK 来宣传我们的 iOS 应用程序

objective-c - 从磅转换为千克,可能使用 Core Data

iphone - 现有圆上的曲线文本

ios - 如何在导航栏中设置多行大标题? ( iOS 11 的新功能)

ios - NSURLRequest 没有将值发布到 Codeigniter API

ios - iCloud API 是否允许从 iOS 访问音乐库?

ios - 重启应用后如何保存按钮的状态?

ios - tableView beginUpdates/endUpdates block 重新加载整个表,即使为空

iphone - 我需要释放xib资源吗?

iphone - 基准 UIView drawRect : method