2011-01-08 82 views

回答

6

看看這個問題,我問:iPhone memory management (with specific examples/questions)

我花了一段時間才能得到的這個掛起了。希望這可以幫助!

編輯:至於什麼[NSMutableArray array]呢,根據上NSArray的文檔,它這樣做:「創建並返回一個空數組。」並由NSArray的可變子類使用,例如NSMutableArray。基本上,這和做:[[[NSMutableArray alloc] init] autorelease](或者其他類似的東西)是一樣的。因爲它是autorelease d,所以你需要調用retain來保持變量。

+0

謝謝你的詳細解答 – jini 2011-01-08 05:53:52

2

1)「retain」關鍵字與「數組」一起做什麼?

如您所知,objective-C使用引用計數來進行內存管理。 「保留」每增加1點。

2)「數組」沒有在任何地方定義。

「數組」在NSArray中定義。 NSMutableArray是NSArray的一個子類,所以NSMutableArray可以使用NSArray中定義的函數。 「array」是一個創建並返回一個空數組的類方法。

有四種方法可以在objective-c中顯式遞增1:alloc,copy,retain,達到 由於您創建的空數組沒有使用任何這些數組,您可以通過「retain」手動遞增1。所以在將來,您可能需要[everyPoints發佈]減1以釋放它。

相關問題