2009-12-01 70 views
7

我想知道如何創建一個NSArray,其中的數字爲1-100,用於UIPickerView使用數字初始化NSArray

我從其他編程類知道我可以這樣做:

int array[100]; 
for (int i=1, i<=100, i++) 
    array[i]=i; 

但我不知道如何來的東西,而不是在所有的值手動鍵入等效採用NSArray。我在網上搜索它,我看到有人用calloc做了它,並不確定這是否是最好的方法,或者如果我可以以某種方式將int整理到NSNumber並且每個NSNumber都進入我的數組中。如果我要執行此過程,那麼我會每次創建一個NSMutableArrayaddObject每次運行循環?我希望在用戶進入屏幕時加載這些值。

+0

只需用至少4個空格縮進代碼,它就會變成代碼塊。 – 2009-12-01 19:40:32

回答

6

或者:

NSArray * array = [NSArray array]; 
for (int i = 1 ; i <= 100 ; i ++) 
    array = [array arrayByAddingObject:[NSNumber numberWithInt:i]]; 

[array retain]; 

或者:

NSMutableArray * array = [[NSMutableArray alloc] initWithCapacity:100]; 
for (int i = 1 ; i <= 100 ; i ++) 
    [array addObject:[NSNumber numberWithInt:i]]; 

...應該做你想要什麼。如果這是你經常做的事情,你可以考慮創建一個類別來構建一個包含範圍的數組。

+1

不要忘記在第二個示例中釋放數組,因爲您已將它分開。 (對於這個問題,爲什麼在第一個例子中保留它) – 2009-12-01 19:57:26

+0

由於缺乏上下文,我想象了一個需要保持它的用例。但是,不管怎樣,結果都需要在某個時候發佈。 – Skirwan 2009-12-01 20:14:06

+3

小心使用循環中的便捷構造函數。第一個例子將創建100個臨時數組,每個數組大於最後一個。 – 2009-12-02 18:47:40