【问题标题】:What is retainCount in Objective-C?Objective-C 中的 retainCount 是什么?
【发布时间】:2010-11-15 10:06:14
【问题描述】:

我有一个UITableView 作为带有UINavigation 控制器的第一个屏幕。

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

这对吗?

【问题讨论】:

    标签: objective-c cocoa-touch retaincount


    【解决方案1】:

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

    一般来说,尝试从保留计数中确定事物是一个坏主意。关于可以保留对象的次数没有规定。唯一的规则是每个保留必须与释放平衡。

    【讨论】:

      【解决方案2】:

      retainCount 是对象上未完成的所有权声明数。

      如果您使用名称以“alloc”或“new”开头或包含“copy”的方法(例如,alloc、newObject 或 mutableCopy)创建对象,或者向其发送保留消息。所有这些都会增加 retainCount。

      您通过使用“释放”或“自动释放”放弃所有权。这些会减少 retainCount。

      但是,您永远不应该注意 retainCount 的值,它充其量是令人困惑的,最坏的情况是误导。只需遵循memory management rules - 当您需要保留对对象的引用并在完成时放弃所有权时取得所有权,您不会有任何问题。

      如果您正在查看retainCount,那么您的处理方式是错误的,您只会进一步混淆自己。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-30
        • 2018-09-21
        • 2011-05-28
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 2010-12-07
        • 2011-03-23
        相关资源
        最近更新 更多