Arrayの特定の要素のカウントができない・・・。ってぼやいてたらできた。2 | demicadeのブログ

demicadeのブログ

iPhoneアプリ開発素人のメモ的なブログです。


昨日のやり方だと、4つの要素のそれぞれのやり方が長くなってしまうので、
switch文に直しました。

まずはarrayに格納していた(r・b・e・g)の要素の格納の仕方を数字に変えました。

for (int i = 0;i < BUTTON_NUM; i++) {
int num = arc4random() %4; //0~2までのランダムの数字に入る
[array insertObject:[NSNumber numberWithInt:num] atIndex:i];
}

NSLog(@"array:%@",array); //ここで一度出力

int r_count = 0;
int g_count = 0;
int e_count = 0;
int b_count = 0;

for (int i = 0;i < BUTTON_NUM; i++) {
int ranNum;
ranNum = [[array objectAtIndex:i]intValue];
switch (ranNum){
case 0:
r_count++;
NSLog(@"r count: %d",r_count);
[array replaceObjectAtIndex:i withObject:(NSString *)@"r"];
break;
case 1:
g_count++;
NSLog(@"g count: %d",g_count);
[array replaceObjectAtIndex:i withObject:(NSString *)@"g"];
break;
case 2:
e_count++;
NSLog(@"e count: %d",e_count);
[array replaceObjectAtIndex:i withObject:(NSString *)@"e"];
break;
case 3:
b_count++;
NSLog(@"b count: %d",b_count);
[array replaceObjectAtIndex:i withObject:(NSString *)@"b"];
break;
default:
break;
}
}
NSLog(@"array:%@",array); //r・g・e・bに変換したarrayを出力
}


ログはこんな感じです。

2012-12-02 12:57:17.337 array:(
0,
2,
2,
1,
2,
0,
2,
0,
0
)

2012-12-02 12:57:17.338 r count: 1
2012-12-02 12:57:17.340 e count: 1
2012-12-02 12:57:17.341 e count: 2
2012-12-02 12:57:17.343 g count: 1
2012-12-02 12:57:17.345 e count: 3
2012-12-02 12:57:17.346 r count: 2
2012-12-02 12:57:17.348 e count: 4
2012-12-02 12:57:17.350 r count: 3
2012-12-02 12:57:17.353 r count: 4

2012-12-02 12:57:17.355 array:(
r,
e,
e,
g,
e,
r,
e,
r,
r
)

割と使えるんでないでしょうか・・・。

自己満かな(笑)