Too much boiler plate code switch statement - iOS
boilerplate, cocoa-touch, ios, switch-statement, uilabel
Solution
Another option is to use the "fall through" property of switch statements
switch ([number_sorted count]) {
case 11:
label_11.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[10] integerValue]];
case 10:
label_10.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[9] integerValue]];
case 9:
label_9.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[8] integerValue]];
case 8:
label_8.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[7] integerValue]];
case 7:
label_7.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[6] integerValue]];
case 6:
label_6.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[5] integerValue]];
case 5:
label_5.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[4] integerValue]];
case 4:
label_4.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[3] integerValue]];
case 3:
label_3.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[2] integerValue]];
case 2:
label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]];
case 1:
label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]];
default:
break;
}
Problem
I have a switch statement which will add texts to 11 UILabels appropriately. However, its getting a bit long now and there is far too much copies of the same code. How can I further improve it? Could I maybe make an array of labels and then just access them via a for loop?? Here is code switch statement: ``` switch ([number_sorted count]) { case 1: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; break; case 2: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]]; break; case 3: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]]; label_3.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[2] integerValue]]; break; case 4: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]]; label_3.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[2] integerValue]]; label_4.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[3] integerValue]]; break; case 5: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]]; label_3.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[2] integerValue]]; label_4.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[3] integerValue]]; label_5.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[4] integerValue]]; break; case 6: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]]; label_3.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[2] integerValue]]; label_4.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[3] integerValue]]; label_5.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[4] integerValue]]; label_6.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[5] integerValue]]; break; case 7: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]]; label_3.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[2] integerValue]]; label_4.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[3] integerValue]]; label_5.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[4] integerValue]]; label_6.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[5] integerValue]]; label_7.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[6] integerValue]]; break; case 8: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]]; label_3.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[2] integerValue]]; label_4.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[3] integerValue]]; label_5.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[4] integerValue]]; label_6.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[5] integerValue]]; label_7.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[6] integerValue]]; label_8.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[7] integerValue]]; break; case 9: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]]; label_3.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[2] integerValue]]; label_4.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[3] integerValue]]; label_5.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[4] integerValue]]; label_6.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[5] integerValue]]; label_7.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[6] integerValue]]; label_8.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[7] integerValue]]; label_9.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[8] integerValue]]; break; case 10: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]]; label_3.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[2] integerValue]]; label_4.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[3] integerValue]]; label_5.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[4] integerValue]]; label_6.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[5] integerValue]]; label_7.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[6] integerValue]]; label_8.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[7] integerValue]]; label_9.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[8] integerValue]]; label_10.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[9] integerValue]]; break; case 11: label_1.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[0] integerValue]]; label_2.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[1] integerValue]]; label_3.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[2] integerValue]]; label_4.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[3] integerValue]]; label_5.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[4] integerValue]]; label_6.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[5] integerValue]]; label_7.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[6] integerValue]]; label_8.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[7] integerValue]]; label_9.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[8] integerValue]]; label_10.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[9] integerValue]]; label_11.text = [NSString stringWithFormat:@"%ld", (long)[number_sorted[10] integerValue]]; break; default: break; } ``` Thanks for your time, Dan.