无论如何要确定何时或何种条件我应该使用不同的属性?我查看了苹果纪录片,这对我来说似乎很混乱。有人可以给我定义和一些例子吗?感谢。
答案 0 :(得分:0)
关于我能想到的所有事情。你几乎不必考虑“我想要一个副本还是一个引用?”,“这会在多个线程中同时使用吗?”并且“这是可以设定的吗?”。
答案 1 :(得分:0)
retain
:设置值时,会向retain
消息发送消息。这是您最常使用的属性。
copy
:该值将发送copy
消息,并存储返回的值。
对于使用retain
或copy
的属性,您必须release
dealloc
中的对象,否则对象将泄漏。
assign
:assign
只是复制该值。对象的意思是复制对象地址(没有保留消息发送到对象)。在使用retain
创建保留循环时,您应该使用它。保留循环的示例是父/子关系,其中两个对象都需要引用另一个(父级应该retain
子级,子级应该assign
父级。出于同样的原因,对象应该assign
其代理。您也必须使用assign
作为基元值(char
,int
,long
等)。 retain
和copy
不适用于基元,因为基元不是对象。