Is there a better way of showing multiple NSDictionaries? I have a method that contains a bunch of NSDictionaries (in fact, the only reason I have that method is to create those NSDictionaries).  While I don't believe there are enough NSDictionaries initialized to visibly slow the code down as of yet, that is a good possibility in the future.  I am currently just creating all the NSDictionaries separately, but is there a better way to do it while keeping its readability?

- (void)items {

    NSDictionary *item1 = @{
    @"label"     : @"item1",
    @"icon"      : [UIImage imageNamed:@"item1-Icon"],
    @"identifier": @"item1"};

    NSDictionary *item2 = @{
    @"label"     : @"item2",
    @"icon"      : [UIImage imageNamed:@"item2-Icon"],
    @"identifier": @"item2"};

    NSDictionary *item3 = @{
    @"label"     : @"item3",
    @"icon"      : [UIImage imageNamed:@"item3-Icon"],
    @"identifier": @"item3"};

    NSDictionary *item4 = @{
    @"label"     : @"item4",
    @"icon"      : [UIImage imageNamed:@"item4-Icon"],
    @"identifier": @"item4"};

    items = [ @[item1, item2, item3, item4] mutableCopy];

}
«Two or more, use a for»
  — Edsger W. Dijkstra


Okay, I am not using a for-loop, but an enumeration

NSArray *itemArray = @[
    @[@"item1",@"item1-Icon",@"item1"],
    @[@"item2",@"item2-Icon",@"item2"],
    @[@"item3",@"item3-Icon",@"item3"],
    @[@"item4",@"item4-Icon",@"item4"]
];

NSMutableArray *items = [NSMutableArray array];
[itemArray enumerateObjectsUsingBlock:^(NSArray *itemProperties, NSUInteger idx, BOOL *stop) {
    [items addObject: @{ @"label":  itemProperties[0],
                         @"icon":  [UIImage imageNamed:itemProperties[1]],
                         @"identifier":  itemProperties[2]
      }];
}];