2009-12-01 71 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