Objective-C / UIButton / SetTitle

时间:2010-05-10 23:12:07

标签: objective-c uibutton retain

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

我想我可以依赖这个属性被定义为:

的事实

属性(非原子,只读,保留)UILabel * titleLabel

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

谢谢, Apple92

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

是的 - 你已经在那里回答了你自己的问题。

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

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