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
值实现会注意到…@congliu
NSDictionary
保留值并复制键。因此,它将增加两者的引用计数。有详细信息和指向所有方法的链接
重新计数
是无用的。
temporaryDictionary = [[NSMutableDictionary alloc] init];