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.

Original source