1

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

我想我可以依靠该属性定义为:

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

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

谢谢, Apple92

4

2 回答 2

1

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

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

于 2010-05-10T23:43:43.610 回答
0

Yes - you've pretty much answered your own question there.

Not all API's retain as the original NSString may change in some way - one API may receive an NSString reference, but it's actually an NSMutableString, for exapmle.

The Google coding standards for Objective C has a section about this, here

于 2010-05-10T23:31:55.133 回答