Objective-C多线程和数据容器

我有一个简单的问题。我正在编写一个带有多线程的Objective-C程序。我有一个全局NSArray,我从一个在新线程中调用的方法将对象添加到NSArray中。如果我添加到NSArray中的对象是在该方法(本地)中创建的新对象,是否会创建内存访问和/或其他问题,或者垃圾收集器是否足够聪明以保留这些对象,直到它们没有更多引用?另外,如果我想将一个对象放入NSArray中,那么该对象是通过引用还是通过值传递的?     
已邀请:
你能在NSArray中添加对象吗?我猜你的意思是NSMutableArray。 NSMutableArray不是线程安全的。因此,在尝试修改锁之前,您可能需要获取锁。虽然这主要取决于线程如何处理共享数据。 NSArray或NSMutableArray将保留它们包含的对象。所以添加后你可以发布本地副本。 该数组将存储引用。 希望能帮助到你。通常,多线程比单线程应用程序困难得多。有关详细信息,请查看“线程编程指南”。它可以帮助您避免许多危险。     
您所描述的设计应该没有问题。你的所有线程共享相同的内存空间,所以一切都会正常工作。内存管理系统将做“正确的事情”,但我建议学习保留/释放方法 - 没有什么比实际了解你的程序正在做什么更好。 Objective-C只是按值传递,就像C一样。也就是说,对象只能通过Objective-C中的指针传递,所以你可以把它想象成总是在这个意义上传递引用。     

要回复问题请先登录注册