【问题标题】:Objective-C / UIButton / SetTitleObjective-C / UIButton / SetTitle
【发布时间】:2010-05-11 07:43:43
【问题描述】:

UIButton 的 setTitle 方法是否保留了作为参数传递的 NSString ?

我想我可以相信属性定义为:

property(nonatomic,readonly,retain) UILabel *titleLabel

在这种情况下,我认为它确实保留了字符串。

谢谢, 苹果92

【问题讨论】:

    标签: objective-c uibutton retain


    【解决方案1】:

    除非另有说明,否则您可以依靠框架类来保留他们需要的东西。这是 Cocoa 的memory management rules 的一部分。你应该阅读那个文档并让它沉入其中,因为一旦你理解了它,基本上你所有的内存管理问题都会消失——相反,如果你不花时间去理解那个文档,你总是会感到不确定。幸运的是,这很简单。

    另外,我会小心不要过分依赖别人告诉你规则。尤其是在 Stack Overflow 这样的非正式场合,人们倾向于简化和说错话,从而导致误解——同时,多年来,官方规则已经被校对了很多次。

    【讨论】:

      【解决方案2】:

      是的 - 你几乎已经回答了你自己的问题。

      并非所有 API 都保留,因为原始 NSString 可能会以某种方式发生变化 - 一个 API 可能会收到一个 NSString 引用,但它实际上是一个 NSMutableString,例如。

      Google coding standards for Objective C 有一个关于此的部分,here

      【讨论】:

        猜你喜欢
        • 2011-12-20
        • 1970-01-01
        • 2015-12-22
        • 2011-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-26
        相关资源
        最近更新 更多