-2

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

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

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

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

4

2 回答 2

0

不,在 ARC 下,两者都不会导致内存泄漏。ARC 足够聪明来处理这些情况。

于 2012-10-18T03:24:50.270 回答
0

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

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

于 2012-10-18T03:25:24.067 回答