ios多线程同时访问数组问题

  错误: <__NSArrayM: 0x96be3e0>was mutated while being enumerated.
  意思就是数组在被一个线程访问的时候,另一个数组也对它进行访问。
  原因是这样的,我的游戏中,有个掉道具的系统,里面有一个数组来保存出来的道具,用一个计时器不停的检测玩家是否碰到道具,但是道具还不停的出来(在主线程中加入)。这时,一方面是计时器线程定期检测,读写道具数组,另一方面是主线程添加道具也要读写道具数组,这两个线程在不特定的时刻会冲突。
  解决的方法:在次线程中复制一个道具数组的副本,用副本进行遍历检测碰撞。

  NSArray* array=[NSArray arrayWithArray:b];

  本文原发布于键赏乾坤

你可能感兴趣的:(ios)