我有一个UITableView
带有UINavigation
控制器的第一个屏幕。
在我的第一个屏幕NSLog(@"Home Screen retain Count=%d",[self retainCount]);
中,当它viewDidLoad
被调用时,它会登录 6。
它是否正确?
我有一个UITableView
带有UINavigation
控制器的第一个屏幕。
在我的第一个屏幕NSLog(@"Home Screen retain Count=%d",[self retainCount]);
中,当它viewDidLoad
被调用时,它会登录 6。
它是否正确?
retainCount 是对象上未完成的所有权声明的数量。
如果您使用名称以“alloc”或“new”开头或包含“copy”(例如,alloc、newObject 或 mutableCopy)的方法创建对象,或者向其发送保留消息,则您将获得对象的所有权。所有这些都会增加retainCount。
您使用“释放”或“自动释放”放弃所有权。这些减少了retainCount。
但是,您永远不应该注意 retainCount 的值,它充其量是令人困惑的,最坏的情况是误导。只需遵循内存管理规则- 当您需要保留对对象的引用时获取所有权,并在完成时放弃所有权,您不会遇到问题。
如果您正在查看retainCount,那么您做事的方式是错误的,您只会进一步混淆自己。
听起来不错。为什么会出错?
一般来说,试图从保留计数中确定事情是一个坏主意。关于可以保留对象的次数没有规定。唯一的规则是每个保留必须与释放平衡。