temporaryDictionary
此语句执行后的引用计数是多少:
temporaryDictionary = [NSMutableDictionary dictionary];
我们知道if的引用计数temporaryDictionary
是这样初始化的:1
temporaryDictionary
temporaryDictionary = [[NSMutableDictionary alloc] init];
谢谢 :D
temporaryDictionary
此语句执行后的引用计数是多少:
temporaryDictionary = [NSMutableDictionary dictionary];
我们知道if的引用计数temporaryDictionary
是这样初始化的:1
temporaryDictionary
temporaryDictionary = [[NSMutableDictionary alloc] init];
谢谢 :D
temporaryDictionary
是在auotorelese pool
,所以retain count
可以1
在某个时间和0
另一个时间点..
是的,它从不建议依赖retainCount
财产。
在这两个语句中,引用计数都是 1(但不要指望它:))并且使用 ARC 两个语句都会产生相同的结果。
如果在第一个语句中未启用 ARC,则字典将为您自动发布,而在第二个语句中您负责发布。
正如@H2CO3 和 Ishank 暗示的那样,您不想将代码基于对象的引用计数,因为它可能会被您不知道的内部实现更改。
temporaryDictionary = [NSMutableDictionary dictionary];
处于自动释放模式,无需手动释放。
temporaryDictionary = [[NSMutableDictionary alloc] init];
你需要小心,在你需要发送的块或dealloc(无论哪个适用)中release
。
在这两种情况下,保留计数都将增加 1,因为保留了值。
*现在您有了自动引用计数,因此无需担心保留计数和手动释放它的开销。