Umair Suraj
Umair Suraj

Reputation: 490

How to refine Nested NSMutableArray code in best way?

I am new in IOS development, i want to write down following scenario in best possible way:

- (void)configureDataSource   {
    NSMutableArray *meterUnitArray = [[NSMutableArray alloc] init];
    NSMutableArray *meterSubUnitArray = [[NSMutableArray alloc] init];
    NSMutableArray *footUnitArray = [[NSMutableArray alloc] init];
    NSMutableArray *footSubUnitArray = [[NSMutableArray alloc] init];
    self.footArray = [[NSMutableArray alloc] init];
    self.meterArray = [[NSMutableArray alloc] init];


    for(int i = 0; i <= 99; i++)
    {
        NSString *str = [NSString stringWithFormat:@"%d Meter", i];
        NSString *str1 = [NSString stringWithFormat:@"%d cm", i];
        [meterUnitArray addObject:str];
        [meterSubUnitArray addObject:str1];


        NSString *str2 = [NSString stringWithFormat:@"%d Foot", i];
        NSString *str3 = [NSString stringWithFormat:@"%d Inches", i];
        [footUnitArray addObject:str2];
        [footSubUnitArray addObject:str3];
    }

    [self.meterArray addObject:meterUnitArray];
    [self.meterArray addObject:meterSubUnitArray];

    [self.footArray addObject:footUnitArray];
    [self.footArray addObject:footSubUnitArray];
}

How can i refine this code?

Upvotes: 0

Views: 61

Answers (1)

Andr&#233; Slotta
Andr&#233; Slotta

Reputation: 14040

@interface YourClass ()

@property (strong, nonatomic) NSArray *footArray;
@property (strong, nonatomic) NSArray *meterArray;

@end

@implementation YourClass

- (void)configureDataSource {
  self.meterArray = @[[@[] mutableCopy], [@[] mutableCopy]];
  self.footArray = @[[@[] mutableCopy], [@[] mutableCopy]];

  for(int i = 0; i <= 99; i++) {
    [self.meterArray[0] addObject:[NSString stringWithFormat:@"%d Meter", i]];
    [self.meterArray[1] addObject:[NSString stringWithFormat:@"%d cm", i]];

    [self.footArray[0] addObject:[NSString stringWithFormat:@"%d Foot", i]];
    [self.footArray[1] addObject:[NSString stringWithFormat:@"%d Inches", i]];
  }
}

Upvotes: 1

Related Questions