2010-08-19 56 views
0

我一直在寫幾個星期的目標C.然而,這個問題仍然困擾我很多。任何人都可以解釋痛苦英語:何時保留一個對象?何時保留目標C?

謝謝

回答

1

這個問題已經被問過很多次。看看this article總結所有可能的情況。

基本上,如果您正在控制它,則保留該對象。假設你使用NSStringstringWithFormat得到了一個字符串。根據上面的文章,這種類型的方法將返回autorelease結果。如果你想長時間使用這個結果,比如接受的時間長度,那麼你會想要retain它表示你將會控制這個結果。否則,它會自己release(提示:autorelease)認爲沒有人不再需要它。

如果您閱讀了文章,您會看到在什麼情況下該做什麼(它非常具體和簡潔)。知道了這一點後,你就可以根據是否需要比預期時間更長的物體來做出決定。

如果您使用屬性,retain屬性,那麼這將自動照顧你。使用上面的示例:

my.property = [NSString stringWithFormat:@"%f", 0.2f]; 

結果將自動保留,因爲您正在使用該屬性。