【发布时间】:2013-05-16 07:06:58
【问题描述】:
如果我设置一个对象,比如视图控制器为 nil,它的按钮和标签等属性也会在 ARC 下释放吗?如果属性的类型是 strong 和 assign 会发生什么?另外,当不使用 ARC 时,在我的 delloc 方法中,我是否只释放保留类型属性?
【问题讨论】:
标签: ios automatic-ref-counting
如果我设置一个对象,比如视图控制器为 nil,它的按钮和标签等属性也会在 ARC 下释放吗?如果属性的类型是 strong 和 assign 会发生什么?另外,当不使用 ARC 时,在我的 delloc 方法中,我是否只释放保留类型属性?
【问题讨论】:
标签: ios automatic-ref-counting
你应该阅读这个Apple Memory Management documentation。
基本上,这取决于。除非其他实例保留它,否则视图控制器将被释放。然后,当它被释放时,它的属性将被释放 - 除非有其他实例保留它们。
如果您将这些属性引用的对象传递给另一个实例,或者(如果属性是某种UIView)您将它们添加为子视图(然后将它们添加到的视图),其他实例可能会保留这些引用将保留它们)。
重要的是,如果您是所有者,您可以发布引用,如果您需要某些东西,您可以通过,保留它并在完成后释放它。
【讨论】: