5

私が使用するよりも配列を数値で埋める良い方法はありますか? ループ内の計算に使用できるように、配列に数値を入力するためだけに、どれだけ多くのことを書かなければならなかったかは、おかしな話です。これは、PHP、As3、Java などの他の C ベースの言語では簡単です。

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);
}

もっと短い方法があることを願っています...配列をintで埋めたいだけです...それほど難しいことはありません

4

4 に答える 4

10

NSArrayにはNSNumberを使用する必要があると思います。intsを使用したい場合は、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

まず、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]];

頻繁に行う場合は、2番目のコードをカテゴリとしてまとめることができNSArrayます。

于 2012-06-24T19:54:26.953 に答える
0

特定の整数をループするための優れた短い代替手段:

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

遅すぎる。しかし、次のこともできます。

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