5

有没有比我使用的更好的方法来用数字填充数组?我写了多少只是为了用数字填充一个数组,这样它们就可以用于循环中的计算,这太疯狂了。这在其他基于 C 的语言(如 PHP、As3 或 Java)中更容易。

NSArray *myArray = [NSArray arrayWithObjects:  
                    [NSNumber numberWithInt:1000],[NSNumber numberWithInt:237], [NSNumber numberWithInt:2673], nil];

int total = 0;
for(int i = 0; i < [myArray count]; i += 1 ){
    total += [[myArray objectAtIndex: i]intValue];
    NSLog(@"%i", total);
}

希望有更短的方法......我只想用整数填充一个数组......不可能那么难

4

4 回答 4

10

我猜您必须将 NSNumber 用于 NSArray。如果你想使用整数,我想你必须使用 ac 数组:

NSInteger myArray[20];

for (int i=0;i<20;i++) {
  int num=myArray[i];

  //do something
 }

NSNumber 虽然是我猜这种语言的更好方法。至少您可以进行快速枚举以稍微缩短代码:

for (NSNumber *n in myArray) {
 int num = [n intValue];

 //do something....

}

编辑:

这个问题是3年前提出的。已经建立了新的文字来更容易创建像 NSNumbers 或 NSArrays 这样的对象:

NSNumber *n = @100;

或者

NSArray *array = @[@100,@50,@10];
于 2012-06-24T16:23:27.377 回答
0

循环特定整数的不错的简短替代方法:

NSArray *numbers = [@"1000,237,2673" componentsSeparatedByString:@","];
for (NSString *i in numbers) {
    [i intValue]; // Do something.
}
于 2012-06-24T16:39:57.560 回答
0

首先从一个 C 数组开始:

NSInteger myCArray = { 1000, 237, 2673 };
// calculate number of elements
NSUInteger myCArrayLength = sizeof(myCArray) / sizeof(NSInteger;

其次,如果您需要NSArray遍历此数组并创建一个循环:

NSMutableArray *myNSArray = [NSMutableArray arrayWithCapacity:myCArrayLength];
for(NSUInteger ix = 0; ix < myCArrayLength; ix++)
   [myNSArray addObject:[NSNumber numberWithInteger:myCArray[ix]];

NSArray如果您经常这样做,您可以将第二段代码包装为一个类别。

于 2012-06-24T19:54:26.953 回答
0

太晚了。但您也可以执行以下操作。

int total = 0;
nsarray *myArray = @[@1.8,@100,@299.8]; 
for(nsnumber *num in myArray){
 total+=num;
}
于 2013-11-29T05:30:18.337 回答