Objective c NSMutableArray内存分配

Objective c NSMutableArray内存分配,objective-c,pointers,memory,nsmutablearray,nsarray,Objective C,Pointers,Memory,Nsmutablearray,Nsarray,我有一个NSMutableArray,有14个索引作为全局NSArray,我们称它为“a”。在每个索引中,我都有一个子数组(因此在“a”中有14个子数组)。 然后,这些数组构成我的UITableView的数据 如果我检查服务器并下载一个新的子数组(在后台线程上),让我们称它为“B”,并希望替换“a”(在主线程上)中的一个数组,那么从“a”中的一个索引读取数据,同时在不同的索引处重写不同的数组(我强调它永远不会是同一个索引)安全吗?它会导致内存问题吗 我对内存分配和指针如何工作的了解是有限的,我似

我有一个NSMutableArray,有14个索引作为全局NSArray,我们称它为“a”。在每个索引中,我都有一个子数组(因此在“a”中有14个子数组)。 然后,这些数组构成我的UITableView的数据

如果我检查服务器并下载一个新的子数组(在后台线程上),让我们称它为“B”,并希望替换“a”(在主线程上)中的一个数组,那么从“a”中的一个索引读取数据,同时在不同的索引处重写不同的数组(我强调它永远不会是同一个索引)安全吗?它会导致内存问题吗


我对内存分配和指针如何工作的了解是有限的,我似乎找不到这方面的信息。

是的,只要线程不尝试访问相同的子数组,您就可以了。如果子数组本身是NSMutableArray,则您只需重写其中的数据,或者删除添加一个新数组来代替它。

是否使用ARC?你还提到了“普通线程”,你是说主线程吗?是的,那就是线程!非常感谢您的快速回复!是因为它们引用了内存中的不同点,而NSArray'A'实际上有14个指向内存中14个不同区域的指针吗?是的,你知道了。通过从“A”中删除一个旧数组并在其中插入一个新数组,您只需将指针从一个内存位置重定向到新创建数组的位置!在添加/删除“母亲”数组中的内容时一定要小心——这些内容应该始终同步。但只要给定数组上只有一个线程工作,更新子数组就可以了。