2012-05-16 53 views
5

我可以簡單地聲明一個數組這樣的:用C創建空的NSArray

int array[500]; 

聲明尺寸500,其然後可以稍後填充的陣列。是否有可能在NSArray中做同樣的事情?我理解爲NSMutableArray有arrayWithCapacity類方法來「創建」和空數組(或至少宣佈數組以後填補)。有沒有辦法爲NSArray做類似的事情,因爲我知道我想要在「for」循環中稍後填充內容的數組的確切大小。

感謝

回答

1

技術上,int array[500];不創建一個空數組 - 它創建一個數組,全是零。由於NSArray s是不可變的,如果您希望能夠稍後填充它,您確實需要使用NSMutableArray

您可以用比容量的陣列,然後將對象放入,就像這樣:

NSMutableArray *array = [NSMutableArray arrayWithCapacity:500]; 
for (int i = 0 ; i != 500 ; i++) { 
    [array addObject:@(i)]; 
} 

由於NSMutableArrayNSArray,你可以在方法創建爲NSMutableArray*,然後返回它作爲NSArray*給呼叫者。

+0

此答案有問題。如'[NSArray arrayWithObjects:count:]''的文檔中所述:count是要包含在新數組中的對象C數組中的值的數量,該數字將是新數組的數量。不是負數或大於對象**中元素的數量。「 –

+0

@DavePeck OMG,我不敢相信之前沒有人注意到這一點!感謝您的評論! – dasblinkenlight