Objective c [NSMutableDictionary]返回的对象的引用计数是多少
执行此语句后,Objective c [NSMutableDictionary]返回的对象的引用计数是多少,objective-c,Objective C,执行此语句后,temporaryDictionary的引用计数是多少: temporaryDictionary = [NSMutableDictionary dictionary]; 我们知道,如果temporaryDictionary以以下方式初始化,则temporaryDictionary的引用计数为1: temporaryDictionary = [[NSMutableDictionary alloc] init]; 谢谢:D临时字典位于自动删除池中,因此保留计数可以在某个时间点为1,
temporaryDictionary
的引用计数是多少:
temporaryDictionary = [NSMutableDictionary dictionary];
我们知道,如果temporaryDictionary
以以下方式初始化,则temporaryDictionary
的引用计数为1
:
temporaryDictionary = [[NSMutableDictionary alloc] init];
谢谢:D
临时字典
位于自动删除池
中,因此保留计数
可以在某个时间点为1
,在另一个时间点为0
是的,不建议依赖于
retainCount
属性。在这两个语句中,引用计数都是1(但不依赖它:),使用ARC,两个语句产生相同的结果
如果在第一条语句中未启用ARC,则词典将自动为您发布,而在第二条语句中,您负责发布
正如@H2CO3和Ishank所暗示的,您不希望将代码基于对象的引用计数,因为它可能会被您不知道的内部实现更改
temporaryDictionary = [NSMutableDictionary dictionary];
处于自动释放模式,无需手动释放
temporaryDictionary = [[NSMutableDictionary alloc] init];
您需要注意,在区块或解除锁定(任何时候都适用)中,您需要发送版本
在这两种情况下,随着值被保留,保留计数将增加1。
*现在您有了自动引用计数,因此无需担心保留计数和手动释放的开销。我们不知道,也不需要知道。您好@H2CO3,我想知道引用计数,因为我不确定是否可以在自动释放池结束之前手动释放
临时字典
,例如,通过调用self.temporaryDictionary=nil始终可以安全地给出self.temporaryDictionary=nil
而不考虑retaincount
值实现会注意到…@congliuNSDictionary
保留值并复制键。因此,它将增加两者的引用计数。有详细信息和指向所有方法的链接重新计数
是无用的。
temporaryDictionary = [[NSMutableDictionary alloc] init];