你首先要弄明白为什么要实现一个线程安全的NSMutabeArray?线程安全的NSMutabeArray只是个手段,真正的目的是什么?为了实现消息队列?网络操作?还是其它?分析之后,绝大多数情况下,可以将问题简化。
因为没有更多信息,假设还是需要数组。简单的方式,是用一个类比如叫ThreadSafetyArray,将NSMutabeArray包装起来。之后ThreadSafetyArray提供插入和删除的函数。而要遍历,就提供一个walk函数,walk函数传入一个block。
ThreadSafetyArray的所有函数,使用锁或者diapatch_queue保证线程安全。这样你并不需要让NSMutabeArray线程安全,只需要让ThreadSafetyArray线程安全。