在将Objective-c设置为新对象时,是否必须在objective-c retain类变量上调用release?

时间:2010-04-24 22:34:07

标签: iphone objective-c cocoa

说我有:

@property(nonatomic,retain)NSString * foo;

在某个班级。

我打电话给:

myclass.foo = [NSString stringWithString:@"string1"];
myclass.foo = [NSString stringWithString:@"string2"];

在将它设置为“string2”之前,我是否应该调用[myclass.foo release]以避免内存泄漏?

或者没有任何东西指向第一个“string1”对象的事实已经足够了?

在dealloc方法中[foo release]将被调用。

1 个答案:

答案 0 :(得分:3)

来自声明属性的Apple Docs

  

<强>保留
    指定在赋值时应在对象上调用retain。 (默认为assign。)
     先前的值将发送一条释放消息。