什么是retainCount在Objective-C?(What is retainCount in

2019-06-27 05:27发布

我有一个UITableView是我的第一个屏幕UINavigation控制器。

在我的第一屏幕我NSLog(@"Home Screen retain Count=%d",[self retainCount]); 并在当其登录6 viewDidLoad被调用。

它是否正确?

Answer 1:

该retainCount是所有权要求的数量也有优秀的对象。

如果使用名称以“黄金”或“新”,或包含“复制”的方法创建它,你需要一个对象的所有权(例如,分配,NEWOBJECT,或mutableCopy),或者如果你向它发送一个retain消息。 所有这些增加的retainCount。

你放弃使用“释放”或“自动释放”的所有权。 这些递减retainCount。

但是你不应该不搭理retainCount的值,它充其量是混乱的,在最坏的误导。 只需按照内存管理规则 -取得所有权时,你需要保持一个对象的引用,并放弃所有权当你完成,你不会有问题。

如果您正在寻找在retainCount,你处理事情走错了路,你只会进一步迷惑自己。



Answer 2:

这听起来不错。 它为什么会出错?

在一般情况下,试图确定的东西从保留计数是一个坏主意。 没有关于的时候,你可以保留对象的数量规则。 唯一的规则是,每个保留必须以释放平衡。



文章来源: What is retainCount in Objective-C?