2010-04-24 16 views
0

說我有:當我將其設置爲新對象時,是否必須調用release-objective-c retain類變量?

@property(nonatomic,retain)NSString * foo;

在某些類。

我呼籲:

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

我是不是應該叫[myclass.foo發佈]設置爲「字符串2」,以避免內存泄漏過嗎?

或者事實上沒有任何東西指向第一個「string1」對象了嗎?

而在dealloc方法中[foo release]會被調用。

+0

你應該永遠不要在像'[myclass.foo release]'這樣的屬性存取器上使用釋放。 – Giao 2010-04-24 22:53:34

+1

請閱讀Cocoa內存管理指南。 – 2010-04-24 22:55:58

+0

更具體地說:http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/MemoryMgmt/ – 2010-04-25 00:40:48

回答

3

Apple Docs聲明的屬性

保留
指定保留應當在分配對象上調用。 (默認值是賦值。)
以前的值發送釋放消息。

相關問題