was mutated while being enumerated

    xiaoxiao2021-03-26  4

    翻译: "在枚举的时候发生了变化"

    for...in...利用了快速枚举NSFastEnumerate,当我们想要改变数组变量中的数据或者删除数组中的数据的时候,不能用for...in...

    Objective-C中的foreach循环与Java中的类似,在内部是用iterator(迭代器)实现遍历的。而不管是在Java还是C++中,一旦修改了被遍历对象,在修改前生成的iterator都会失效。 NSArray的枚举操作中有一条需要注意:对于可变数组进行枚举操作时,你不能通过添加或删除对象这类操作来改变数组容器。如果你这么做了,枚举器会很困惑,而你将得到未定义的结果。

    解决办法:用for循环

    转载请注明原文地址: https://ju.6miu.com/read-500131.html

    最新回复(0)