这是否仍会导致ARC内存泄漏

时间:2012-10-18 03:18:51

标签: objective-c ios memory-leaks

这是场景: 假设我们有一个MyObject类,我们在“MyObject.h”中通过@property (strong) NSObject *aObj声明一个属性;然后我们在“MyObject.m”中使用此属性。

A. self.aObj = [[NSObject alloc] init];

B. aObj = [[NSObject alloc] init];

我想知道A是否存在内存泄漏。如果强保留在MRC中,似乎A会出现内存泄漏。如果在ARC中,这仍会导致内存泄漏?

2 个答案:

答案 0 :(得分:0)

不,在ARC下,既不会导致内存泄漏。 ARC非常聪明,可以处理这些情况。

答案 1 :(得分:0)

(A)将在MRC中泄漏,RHS返回一个拥有的对象,属性设置者将其保留为第二次。它不会在ARC中泄漏。

(B)可能在MRC中泄漏,变量aObj可能包含一个不会被释放的自有引用。它不会在ARC中泄漏。