Objective c 目标-C/UIButton/SetTitle

Objective c 目标-C/UIButton/SetTitle,objective-c,uibutton,retain,Objective C,Uibutton,Retain,UIButton的setTitle方法是否保留作为参数传递的NSString 我想我可以相信这样一个事实,即该财产的定义如下: 属性(非原子、只读、保留)UILabel*标题标签 在这种情况下,我认为它确实保留了字符串 谢谢, Apple92是-您已经基本回答了自己的问题 并不是所有API都会保留,因为原始NSString可能会以某种方式发生更改—一个API可能会收到NSString引用,但实际上它是一个NSMutableString,例如 有一节是关于这一点的,是的-你已经基本上回答了你自己的

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

我想我可以相信这样一个事实,即该财产的定义如下:

属性(非原子、只读、保留)UILabel*标题标签

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

谢谢,
Apple92

是-您已经基本回答了自己的问题

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


有一节是关于这一点的,

是的-你已经基本上回答了你自己的问题

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


有一节是关于这一点的,

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


另外,我会小心不要太依赖别人告诉你规则。特别是在像堆栈溢出这样的非正式环境中,人们倾向于简化和说错,从而导致误解——同时,官方规则多年来已经被校对了很多次。

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

另外,我会小心不要太依赖别人告诉你规则。特别是在像堆栈溢出这样的非正式环境中,人们倾向于简化和说错,导致误解——同时,官方规则多年来已经被校对了很多次