eventPoints = [[NSMutableArray array] retain];
「retain」關鍵字和「數組」一起做什麼? 「數組」沒有在任何地方定義。有人可以在Objective-C上解釋這一行代碼嗎?
此外事件點被聲明爲一個NSMutableArray。
我只是想學習。由於
eventPoints = [[NSMutableArray array] retain];
「retain」關鍵字和「數組」一起做什麼? 「數組」沒有在任何地方定義。有人可以在Objective-C上解釋這一行代碼嗎?
此外事件點被聲明爲一個NSMutableArray。
我只是想學習。由於
看看這個問題,我問:iPhone memory management (with specific examples/questions)
我花了一段時間才能得到的這個掛起了。希望這可以幫助!
編輯:至於什麼[NSMutableArray array]
呢,根據上NSArray
的文檔,它這樣做:「創建並返回一個空數組。」並由NSArray
的可變子類使用,例如NSMutableArray
。基本上,這和做:[[[NSMutableArray alloc] init] autorelease]
(或者其他類似的東西)是一樣的。因爲它是autorelease
d,所以你需要調用retain
來保持變量。
1)「retain」關鍵字與「數組」一起做什麼?
如您所知,objective-C使用引用計數來進行內存管理。 「保留」每增加1點。
2)「數組」沒有在任何地方定義。
「數組」在NSArray中定義。 NSMutableArray是NSArray的一個子類,所以NSMutableArray可以使用NSArray中定義的函數。 「array」是一個創建並返回一個空數組的類方法。
有四種方法可以在objective-c中顯式遞增1:alloc,copy,retain,達到 由於您創建的空數組沒有使用任何這些數組,您可以通過「retain」手動遞增1。所以在將來,您可能需要[everyPoints發佈]減1以釋放它。
謝謝你的詳細解答 – jini 2011-01-08 05:53:52