如何找到对象的保留计数? [复制]

Posted

技术标签:

【中文标题】如何找到对象的保留计数? [复制]【英文标题】:How to find Retain Count of the Objects? [duplicate] 【发布时间】:2015-03-24 09:26:44 【问题描述】:

我是 Objective-c 的新手。我想知道以下对象的保留计数,也想知道这个过程是如何工作的。 我研究了很多文档,也看了很多教程,但这个疑问仍然存在。

NSString *str1=@"Hai";
NSString *str2=str1;
NSSstring *str3=[str2 copy];

“三个字符串”的保留计数是多少?

对不起我糟糕的英语。 谁能告诉我答案。 谢谢

【问题讨论】:

欢迎来到***。请先使用搜索功能。这不是第一次被问到这个问题,您现在将收到一整批反对票和指向http://whentouseretaincount.com 的轻率链接。 【参考方案1】:
NSString *str1=@"Hai";
NSString *str2=str1;
NSSstring *str3=[str2 copy];

NSLog(@"COUNT %lu",(unsigned long)[str1 retainCount]);
NSLog(@"COUNT %lu",(unsigned long)[str2 retainCount]);
NSLog(@"COUNT %lu",(unsigned long)[str3 retainCount]);

【讨论】:

它不工作。它显示错误“ARC 禁止发送显式消息以保留计数” 什么错误?你在使用 ARC 吗?显然它会显示错误。只有在没有 ARC 的情况下才有效 为什么每个字符串的保留计数都为 1?你能告诉我答案吗?

以上是关于如何找到对象的保留计数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何找到保留计数?

查找保留特定对象的对象

是啥增加了对象的保留计数?

自动释放对象递减的保留计数何时减少?

最近创建的对象的大量保留计数。 Objective-C

如何使 NSView 透明,但保留属于它的对象? [复制]