2016-06-15 58 views
1

我有以下代碼:如何獲得NSMutableArray的容量?

[[NSMutableArray alloc] initWithCapacity:slidingValue] 

但是,如果我試圖通過上述初始化後直接使用count得到它的大小,它會返回0沒有添加對象到它尚未雖然。

我能夠獲得它的容量嗎?

+0

'NSMutableArray'沒有初始固定大小。它隨着添加元素而增長。 'initWithCapacity:'中的'capacity'只是一個提示性能的暗示,我想。請參閱文檔:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/#//apple_ref/occ/instm/NSMutableArray/initWithCapacity: –

+0

嗯......我想知道爲什麼你需要一個NSMutaleArray的容量?它看起來像一個XY問題。 – kukushi

+0

當你有滑動值你已經設置爲容量,那麼爲什麼你需要從數組相同?你可以使用slidingValue這個你已經分配給數組的數組。 – Vickyexpert

回答

1

您不需要容量。這是一種優化,取決於您指定的容量有多大以及內部算法NSArray選擇的內容可能實際上被忽略。只需使用 - addObject:或 - insertObject:添加對象。與CFArray不同,NSArray的容量不是硬限制。這只是一個建議。

如果你在一個隨機的順序(但有一個索引號),你可以創建一個數組,並使用[NSNull null]對象填充它讓你的對象 - addObject:,然後與實際的對象替換NSNull因爲你得到它。但後者很少需要。

注:

的 - initWithCapacity:方法創建的陣列可以有多大的存儲器再分配之前到達一個提示空數組。當你實際上-addObject:數組增加了數量。