请帮助我避免将来违反DRY原则

时间:2013-06-11 02:24:58

标签: objective-c cocoa-touch cocoa

我知道有一个更好/更简单的方法来创建一个小的NSDictionary对象的NSArray,可能使用KVC或一些Obj-C 2.0的幻想,但我找不到它,并且也可以输入它。 我的课:     @interface PDDetailShowModel:NSObject

@property(nonatomic, strong, readonly)NSString *showid;
@property(nonatomic, strong, readonly)NSString *showdate;
@property(nonatomic, strong, readonly)NSString *showyear;
@property(nonatomic, strong, readonly)NSString *city;
@property(nonatomic, strong, readonly)NSString *state;
@property(nonatomic, strong, readonly)NSString *country;
...

方法:

- (NSArray *) createArrayForTableView
{
  NSMutableArray *list = [NSMutableArray array];
  NSDictionary *dict = @{@"venue":_venue};
  [list addObject:dict];
  NSDictionary *dict1 = @{@"city":_city};
  [list addObject:dict1];
  NSDictionary *dict2 = @{@"state":_state};
  [list addObject:dict2];
  NSDictionary *dict3 = @{@"country":_country};
  ....
  return [NSArray arrayWithArray:list];
}

我的最终目标是用节标题填充一个漂亮的UITableView。我从JSON API调用中得到了所有这些东西,但它不是我想要的TableView顺序。

1 个答案:

答案 0 :(得分:2)

您可以将字典文字包装在数组文字中。

或者,为了避免重新编译或避免不必要的内存消耗,您可以在项目中创建一个plist并在需要时编辑它,并使用initWithContentsOfURL简单地初始化数组:[[NSBundle mainBundle] URLForResource:@“plistFileName” ];