【发布时间】:2013-04-03 19:36:17
【问题描述】:
首先,我是 Objective C 的新手,我在互联网上阅读了一些内容。在 iOS 和 MAC 上,我可以在没有任何内存管理知识(如释放、保留、自动释放等)的情况下使用 ARC。在 MAC 上的某些地方我可以使用 ARC,但在 iOS 上我需要手动管理,在某些地方它说我可以在 iOS 上使用 ARC 但我需要做一些手动管理。那么什么是正确答案呢?
【问题讨论】:
-
您可以在 iOS 上使用 ARC。您不需要任何有关发布和保留等方面的先验知识,但了解它会有所帮助
-
所以我在使用 ARC 时不需要了解任何内存管理,对吗?你能告诉我什么是强、弱、复制吗?
-
是的 arc 会为你处理内存管理。简而言之,强/弱是:当对一个对象的所有强引用都消失(设置为 nil)时,一个对象将被删除,即使仍然有指向该对象的弱引用。一个对象只有在至少有 1 个强引用时才会存在。 afaik 如果未指定,则默认为强
-
A owns B表示A对B具有强引用,而B可能 对A具有弱引用。 -
我们可以说:对象 a 有对象 b。所以当我们实现的时候,我们会写@property (strong) OBJ *objecta; ?我应该什么时候使用(强、弱、复制、分配)?
标签: objective-c memory-management automatic-ref-counting