在学习Objective-C的过程中,我们会学到NSMutableArray这个类,也就是可变数组。在做和可变数组相关的编程题的时候,我们会遇到一个这样的问题:在对数组遍历时删除数组元素。
有些人一看,很简单嘛,forin 遍历就解决了,我们来看一下用forin解决这个问题的结果
我们先假设一个场景,一个数组中存了n个联系人,现在我们要根据姓名删除联系人
<span style="font-size:18px;"> for (AddressPerson *perName in array) {
if ([[perName name] isEqualToString:@"Zhangsan"]) {
[array removeObject:perName];
}
}</span>
这是用forin遍历来解决这个问题的代码实现,当我们运行程序时,程序crash了,这是为什么啊?逻辑是哪个没有错误啊,语法也没有报错啊?我们来看一下程序crash的原因