这是场景:
假设我们有一个MyObject类,我们在“MyObject.h”中通过@property (strong) NSObject *aObj
声明一个属性;然后我们在“MyObject.m”中使用此属性。
A. self.aObj = [[NSObject alloc] init];
B. aObj = [[NSObject alloc] init];
我想知道A是否存在内存泄漏。如果强保留在MRC中,似乎A会出现内存泄漏。如果在ARC中,这仍会导致内存泄漏?
答案 0 :(得分:0)
不,在ARC下,既不会导致内存泄漏。 ARC非常聪明,可以处理这些情况。
答案 1 :(得分:0)
(A)将在MRC中泄漏,RHS返回一个拥有的对象,属性设置者将其保留为第二次。它不会在ARC中泄漏。
(B)可能在MRC中泄漏,变量aObj
可能包含一个不会被释放的自有引用。它不会在ARC中泄漏。