我有一个 MKMapView,另一个类有一个向 MKMapView 添加注释的线程。
但问题是, MKMapView.annotations 是非原子的。因此,当其他类正在添加注释时......如果用户不移动地图的可见区域,它看起来没问题。但是,如果您继续移动它,并且此时其他类正在向地图添加注释,则应用程序崩溃。因为在地图制作动画期间数组发生了变异。
我制作了 NSOperationQueue,并将每个添加注释作业添加到队列中。
然后每当地图的区域改变时,暂停 NSOperationQueue.. 然后在区域改变完成后重新启动它。
我可以摆脱大多数崩溃......但它仍然偶尔发生。
任何想法?