UIButton的setTitle方法是否保留作为参数传递的NSString?Objective-C/UIButton/SetTitle
我想我可以依靠的事实属性定义为:
财产(非原子,只读,保留)的UILabel * titleLabel
在这种情况下,我认为它确实保留了串。
感谢, Apple92
UIButton的setTitle方法是否保留作为参数传递的NSString?Objective-C/UIButton/SetTitle
我想我可以依靠的事实属性定义为:
财产(非原子,只读,保留)的UILabel * titleLabel
在这种情况下,我认为它确实保留了串。
感谢, Apple92
是 - 你几乎回答了你自己的问题在那里。
不是所有的API都保留原来的NSString可能会以某种方式更改 - 一个API可能会收到一个NSString引用,但它实际上是一个NSMutableString,用于exapmle。
您可以在框架类数保留的东西,他们需要的,除非另有记载。这是Cocoa的memory management rules的一部分。你应该阅读该文档并让它沉浸其中,因为一旦你理解了它,基本上所有的内存管理问题都会消失 - 相反,如果你没有花时间去理解那些文档,你总会感到不确定。幸运的是,这很简单。
此外,我会小心过度依赖其他人告诉你的规则。特别是在像Stack Overflow这样的非正式场合,人们倾向于简化和错误理解,从而导致误解 - 同时,官方规则多年来被多次校正过。