问题1概述
MRC环境下,[NSMutableArray array]相当于[[[NSMutableArray alloc] init] autorelease],即两者都会加入自动释放池中:
但是对于NSArray,两者都不会加入自动释放池:
问题1解答
经过试验,我发现NSString和NSMutableString的结果也不一样,猜想对于不可变对象,非alloc\new\copy\mutableCopy方法可能不相当于调用了autorelease方法,也许与浅拷贝有关:
证明猜想:对于浅拷贝,并没有调用autorelease方法,而是调用了copy方法
问题2
对于__autoreleasing修饰符,我发现在MRC下,其修饰的变量并未加入自动释放池:
而在ARC情况下,修饰的变量加入了自动释放池:
推测也许__autoreleasing修饰符只在ARC环境下有用
说明
以上问题都是我在看书时发现的,但是并未在网络或书上找到正确答案,故根据打印情况推测的,如有错误,敬请斧正