开发中遇到需写入代码中一些批量的数据时,数据结构设计不好,往往会造成维护问题。
如下:
1.用多个数组方式写入一些相互有关系的数据就是很不明智的。下面代码中3个数组中相同序号的对象是一一对应的。后期调整顺序时就很麻烦,三个数组都要改。
NSArray * arrayRoleNames =@[@"全部职业",@"德鲁伊",@"萨满祭司",@"术士",@"牧师",@"法师",@"潜行者",@"战士",@"圣骑士",@"猎人"];
NSArray * arrayRoleTypes =@[@(RoleTypeAllRole),@(RoleTypeDruid),@(RoleTypeShaman),@(RoleTypeWarlock),@(RoleTypePriest),@(RoleTypeMage),@(RoleTypeRogue),@(RoleTypeWarrior),@(RoleTypePaladin),@(RoleTypeHunter)];
NSArray * arrayRoleImages =@[[UIImageimageNamed:@"icon_deck_menu_all"],[UIImageimageNamed:@"icon_deck_menu_dly"],[UIImageimageNamed:@"icon_deck_menu_sm"],[UIImageimageNamed:@"icon_deck_menu_ss"],[UIImageimageNamed:@"icon_deck_menu_ms"],[UIImageimageNamed:@"icon_deck_menu_fs"],[UIImageimageNamed:@"icon_deck_menu_dz"],[UIImageimageNamed:@"icon_deck_menu_zs"],[UIImageimageNamed:@"icon_deck_menu_qs"],[UIImageimageNamed:@"icon_deck_menu_lr"]];
roleItems = [[NSMutableArrayalloc]init];
[arrayRoleNames enumerateObjectsUsingBlock:^(NSString * _Nonnull obj,NSUInteger idx,BOOL *_Nonnull stop) {
RoleItem * item = [RoleItemnew];
item.roleName = obj;
item.roleType = [[arrayRoleTypesobjectAtIndex:idx]integerValue];
item.roleIconImage = [arrayRoleImagesobjectAtIndex:idx];
[roleItemsaddObject:item];
}];
RoleItem * roleAll = [[RoleItemalloc]initWithName:@"全部职业"imageIcon:[UIImageimageNamed:@"icon_deck_menu_all"]roleType:RoleTypeAllRole];
RoleItem * roleDruid = [[RoleItemalloc]initWithName:@"德鲁伊"imageIcon:[UIImageimageNamed:@"icon_deck_menu_dly"]roleType:RoleTypeDruid];
RoleItem * roleShaman = [[RoleItemalloc]initWithName:@"萨满祭司"imageIcon:[UIImageimageNamed:@"icon_deck_menu_sm"]roleType:RoleTypeShaman];
RoleItem * roleWarlock = [[RoleItemalloc]initWithName:@"术士"imageIcon:[UIImageimageNamed:@"icon_deck_menu_ss"]roleType:RoleTypeWarlock];
RoleItem * rolePriest = [[RoleItemalloc]initWithName:@"牧师"imageIcon:[UIImageimageNamed:@"icon_deck_menu_ms"]roleType:RoleTypePriest];
RoleItem * roleMage = [[RoleItemalloc]initWithName:@"法师"imageIcon:[UIImageimageNamed:@"icon_deck_menu_fs"]roleType:RoleTypeMage];
RoleItem * roleRogue = [[RoleItemalloc]initWithName:@"潜行者"imageIcon:[UIImageimageNamed:@"icon_deck_menu_dz"]roleType:RoleTypeRogue];
RoleItem * roleWarrior = [[RoleItemalloc]initWithName:@"战士"imageIcon:[UIImageimageNamed:@"icon_deck_menu_zs"]roleType:RoleTypeWarrior];
RoleItem * rolePaladin = [[RoleItemalloc]initWithName:@"圣骑士"imageIcon:[UIImageimageNamed:@"icon_deck_menu_qs"]roleType:RoleTypePaladin];
RoleItem * roleHunter = [[RoleItemalloc]initWithName:@"猎人"imageIcon:[UIImageimageNamed:@"icon_deck_menu_lr"]roleType:RoleTypeHunter];
self.roleItems =@[roleAll,roleDruid,roleShaman,roleWarlock,rolePriest,roleMage,roleRogue,roleWarrior,rolePaladin,roleHunter];