一:Plist读取
1 /******************************************************************************/ 2 一:简单plist读取 3 4 1:定义一个数组用来保存读取出来的plist数据 5 @property (nonatomic, strong) NSArray *shops; 6 7 2:使用懒加载的方式加载plist文件,并且放到数组中 8 // 懒加载 9 // 1.第一次用到时再去加载 10 // 2.只会加载一次 11 - (NSArray *)shops 12 { 13 if (_shops == nil) { 14 // 获得plist文件的全路径 15 NSString *file = [[NSBundle mainBundle] pathForResource:@"shops.plist" ofType:nil]; 16 17 // 从plist文件中加载一个数组对象 18 _shops = [NSArray arrayWithContentsOfFile:file]; 19 } 20 return _shops; 21 } 22 23 3:使用数组中的数据 24 // 设置数据 25 NSDictionary *shop = self.shops[index]; 26 iconView.image = [UIImage imageNamed:shop[@"icon"]]; 27 nameLabel.text = shop[@"name"]; 28 29 /******************************************************************************/
二:字典转模型
1 二:字典转模型 2 3 1:创建一个model类并且在里面创建对应的模型属性 4 /** 名字 */ 5 @property (nonatomic, strong) NSString *name; 6 /** 图标 */ 7 @property (nonatomic, strong) NSString *icon; 8 9 10 2:定义一个数组用来保存读取出来的plist数据 11 @property (nonatomic, strong) NSMutableArray *shops; 12 13 14 3:使用懒加载的方式加载plist文件,并且放到模型中 15 16 // 懒加载 17 // 1.第一次用到时再去加载 18 // 2.只会加载一次 19 - (NSMutableArray *)shops 20 { 21 if (_shops == nil) { 22 // 创建"模型数组" 23 _shops = [NSMutableArray array]; 24 25 // 获得plist文件的全路径 26 NSString *file = [[NSBundle mainBundle] pathForResource:@"shops.plist" ofType:nil]; 27 28 // 从plist文件中加载一个数组对象(这个数组中存放的都是NSDictionary对象) 29 NSArray *dictArray = [NSArray arrayWithContentsOfFile:file]; 30 31 // 将 “字典数组” 转换为 “模型数据” 32 for (NSDictionary *dict in dictArray) { // 遍历每一个字典 33 // 将 “字典” 转换为 “模型” 34 Shop *shop = [[Shop alloc] init]; 35 shop.name = dict[@"name"]; 36 shop.icon = dict[@"icon"]; 37 38 // 将 “模型” 添加到 “模型数组中” 39 [_shops addObject:shop]; 40 } 41 } 42 return _shops; 43 } 44 45 46 4:使用模型中的数据 47 // 设置数据 48 Shop *shop = self.shops[index]; 49 iconView.image = [UIImage imageNamed:shop.icon]; 50 nameLabel.text = shop.name; 51 52 53 /******************************************************************************/
三:字典转模型疯转
1 二:字典转模型封装 2 3 1:创建一个model类并且在里面创建对应的模型属性,定义两个模型方法 4 /** 名字 */ 5 @property (nonatomic, copy) NSString *name; 6 /** 图标 */ 7 @property (nonatomic, copy) NSString *icon; 8 9 /** 通过一个字典来初始化模型对象 */ 10 - (instancetype)initWithDict:(NSDictionary *)dict; 11 12 /** 通过一个字典来创建模型对象 */ 13 + (instancetype)shopWithDict:(NSDictionary *)dict; 14 15 16 2:模型方法的实现 17 - (instancetype)initWithDict:(NSDictionary *)dict 18 { 19 if (self = [super init]) { 20 self.name = dict[@"name"]; 21 self.icon = dict[@"icon"]; 22 } 23 return self; 24 } 25 26 + (instancetype)shopWithDict:(NSDictionary *)dict 27 { 28 // 这里要用self 29 return [[self alloc] initWithDict:dict]; 30 } 31 32 3:定义一个数组用来保存读取出来的plist数据 33 @property (nonatomic, strong) NSMutableArray *shops; 34 35 36 4:使用懒加载的方式加载plist文件,并且放到模型中 37 // 懒加载 38 // 1.第一次用到时再去加载 39 // 2.只会加载一次 40 - (NSMutableArray *)shops 41 { 42 if (_shops == nil) { 43 // 创建"模型数组" 44 _shops = [NSMutableArray array]; 45 46 // 获得plist文件的全路径 47 NSString *file = [[NSBundle mainBundle] pathForResource:@"shops.plist" ofType:nil]; 48 49 // 从plist文件中加载一个数组对象(这个数组中存放的都是NSDictionary对象) 50 NSArray *dictArray = [NSArray arrayWithContentsOfFile:file]; 51 52 // 将 “字典数组” 转换为 “模型数据” 53 for (NSDictionary *dict in dictArray) { // 遍历每一个字典 54 // 将 “字典” 转换为 “模型” 55 XMGShop *shop = [XMGShop shopWithDict:dict]; 56 57 // 将 “模型” 添加到 “模型数组中” 58 [_shops addObject:shop]; 59 } 60 } 61 return _shops; 62 } 63 64 65 5:使用模型中的数据 66 // 设置数据 67 XMGShop *shop = self.shops[index]; 68 iconView.image = [UIImage imageNamed:shop.icon]; 69 nameLabel.text = shop.name; 70 71 72 /******************************************************************************/
四:自定义View
1 四:自定义View 2 3 1:创建一个model类并且在里面创建对应的模型属性,定义两个模型方法 4 /** 名字 */ 5 @property (nonatomic, copy) NSString *name; 6 /** 图标 */ 7 @property (nonatomic, copy) NSString *icon; 8 9 /** 通过一个字典来初始化模型对象 */ 10 - (instancetype)initWithDict:(NSDictionary *)dict; 11 12 /** 通过一个字典来创建模型对象 */ 13 + (instancetype)shopWithDict:(NSDictionary *)dict; 14 15 16 2:模型方法的实现 17 - (instancetype)initWithDict:(NSDictionary *)dict 18 { 19 if (self = [super init]) { 20 self.name = dict[@"name"]; 21 self.icon = dict[@"icon"]; 22 } 23 return self; 24 } 25 26 + (instancetype)shopWithDict:(NSDictionary *)dict 27 { 28 // 这里要用self 29 return [[self alloc] initWithDict:dict]; 30 } 31 32 33 3:自定义一个View,引入模型类,并且创建模型类的属性 34 35 @class XMGShop; 36 37 /** 商品模型 */ 38 @property (nonatomic, strong) XMGShop *shop; 39 40 41 4:实现文件中,定义相应的控件属性 42 /** 图片 */ 43 @property (nonatomic, weak) UIImageView *iconView; 44 45 /** 名字 */ 46 @property (nonatomic, weak) UILabel *nameLabel; 47 48 5:实现自定义View的相应方法 49 - (instancetype)init 50 { 51 if (self = [super init]) { 52 // 添加一个图片 53 UIImageView *iconView = [[UIImageView alloc] init]; 54 [self addSubview:iconView]; 55 self.iconView = iconView; 56 57 // 添加一个文字 58 UILabel *nameLabel = [[UILabel alloc] init]; 59 nameLabel.textAlignment = NSTextAlignmentCenter; 60 [self addSubview:nameLabel]; 61 self.nameLabel = nameLabel; 62 } 63 return self; 64 } 65 66 /** 67 * 这个方法专门用来布局子控件,设置子控件的frame 68 */ 69 - (void)layoutSubviews 70 { 71 // 一定要调用super方法 72 [super layoutSubviews]; 73 74 CGFloat shopW = self.frame.size.width; 75 CGFloat shopH = self.frame.size.height; 76 77 self.iconView.frame = CGRectMake(0, 0, shopW, shopW); 78 self.nameLabel.frame = CGRectMake(0, shopW, shopW, shopH - shopW); 79 } 80 81 -(void)setShop:(XMGShop *)shop 82 { 83 _shop = shop; 84 85 self.iconView.image = [UIImage imageNamed:shop.icon]; 86 self.nameLabel.text = shop.name; 87 } 88 6:定义一个数组用来保存读取出来的plist数据 89 @property (nonatomic, strong) NSMutableArray *shops; 90 91 7:使用懒加载的方式加载plist文件,并且放到模型中 92 // 懒加载 93 // 1.第一次用到时再去加载 94 // 2.只会加载一次 95 - (NSMutableArray *)shops 96 { 97 if (_shops == nil) { 98 // 创建"模型数组" 99 _shops = [NSMutableArray array]; 100 101 // 获得plist文件的全路径 102 NSString *file = [[NSBundle mainBundle] pathForResource:@"shops.plist" ofType:nil]; 103 104 // 从plist文件中加载一个数组对象(这个数组中存放的都是NSDictionary对象) 105 NSArray *dictArray = [NSArray arrayWithContentsOfFile:file]; 106 107 // 将 “字典数组” 转换为 “模型数据” 108 for (NSDictionary *dict in dictArray) { // 遍历每一个字典 109 // 将 “字典” 转换为 “模型” 110 XMGShop *shop = [XMGShop shopWithDict:dict]; 111 112 // 将 “模型” 添加到 “模型数组中” 113 [_shops addObject:shop]; 114 } 115 } 116 return _shops; 117 } 118 119 120 8:使用View 121 // 创建一个商品父控件 122 XMGShopView *shopView = [[XMGShopView alloc] init]; 123 shopView.frame = CGRectMake(shopX, shopY, shopW, shopH); 124 // 将商品父控件添加到shopsView中 125 [self.shopsView addSubview:shopView]; 126 127 /** 128 129 NSDictionary *dict = nil; // 从其他地方加载的字典 130 131 XMGShop *shop = [XMGShop shopWithDict:dict]; 132 133 XMGShopView *shopView = [[XMGShopView alloc] init]; 134 shopView.shop = shop; 135 shopView.frame = CGRectMake(0, 0, 70, 100); 136 [self.view addSubview:shopView]; 137 138 139 // 扩展性差 140 // 扩展好的体现:即使改变了需求。我们也不需要动大刀子 141 */ 142 143 /******************************************************************************/
五:initWithFrame
1 五:initWithFrame 2 1:在上一步的基础上只要修改init方法为 3 /** init方法内部会自动调用initWithFrame:方法 */ 4 - (instancetype)initWithFrame:(CGRect)frame 5 { 6 if (self = [super initWithFrame:frame]) { 7 // 添加一个图片 8 UIImageView *iconView = [[UIImageView alloc] init]; 9 [self addSubview:iconView]; 10 self.iconView = iconView; 11 12 // 添加一个文字 13 UILabel *nameLabel = [[UILabel alloc] init]; 14 nameLabel.textAlignment = NSTextAlignmentCenter; 15 [self addSubview:nameLabel]; 16 self.nameLabel = nameLabel; 17 } 18 return self; 19 } 20 21 22 2:最后设置数据的时候也可以使用下面的方法实现View的创建 23 XMGShopView *shopView = [[XMGShopView alloc] initWithFrame:CGRectMake(shopX, shopY, shopW, shopH)]; 24 25 26 /******************************************************************************/
六:MVC
1 六:MVC 2 3 1:model 4 @interface XMGShop : NSObject 5 /** 名字 */ 6 @property (nonatomic, copy) NSString *name; 7 /** 图标 */ 8 @property (nonatomic, copy) NSString *icon; 9 /** 通过一个字典来初始化模型对象 */ 10 - (instancetype)initWithDict:(NSDictionary *)dict; 11 12 /** 通过一个字典来创建模型对象 */ 13 + (instancetype)shopWithDict:(NSDictionary *)dict; 14 @end 15 16 17 @implementation XMGShop 18 19 - (instancetype)initWithDict:(NSDictionary *)dict 20 { 21 if (self = [super init]) { 22 self.name = dict[@"name"]; 23 self.icon = dict[@"icon"]; 24 } 25 return self; 26 } 27 28 + (instancetype)shopWithDict:(NSDictionary *)dict 29 { 30 // 这里要用self 31 return [[self alloc] initWithDict:dict]; 32 } 33 34 @end 35 36 37 2:view 38 @class XMGShop; 39 40 @interface XMGShopView : UIView 41 /** 商品模型 */ 42 @property (nonatomic, strong) XMGShop *shop; 43 44 - (instancetype)initWithShop:(XMGShop *)shop; 45 + (instancetype)shopViewWithShop:(XMGShop *)shop; 46 + (instancetype)shopView; 47 @end 48 49 50 @interface XMGShopView() 51 /** 图片 */ 52 @property (nonatomic, weak) UIImageView *iconView; 53 54 /** 名字 */ 55 @property (nonatomic, weak) UILabel *nameLabel; 56 @end 57 58 @implementation XMGShopView 59 60 - (instancetype)initWithShop:(XMGShop *)shop 61 { 62 if (self = [super init]) { 63 self.shop = shop; 64 } 65 return self; 66 } 67 68 + (instancetype)shopViewWithShop:(XMGShop *)shop 69 { 70 return [[self alloc] initWithShop:shop]; 71 } 72 73 + (instancetype)shopView 74 { 75 return [[self alloc] init]; 76 } 77 78 /** init方法内部会自动调用initWithFrame:方法 */ 79 - (instancetype)initWithFrame:(CGRect)frame 80 { 81 if (self = [super initWithFrame:frame]) { 82 // 添加一个图片 83 UIImageView *iconView = [[UIImageView alloc] init]; 84 [self addSubview:iconView]; 85 self.iconView = iconView; 86 87 // 添加一个文字 88 UILabel *nameLabel = [[UILabel alloc] init]; 89 nameLabel.textAlignment = NSTextAlignmentCenter; 90 [self addSubview:nameLabel]; 91 self.nameLabel = nameLabel; 92 } 93 return self; 94 } 95 96 /** 97 * 当前控件的frame发生改变的时候就会调用 98 * 这个方法专门用来布局子控件,设置子控件的frame 99 */ 100 - (void)layoutSubviews 101 { 102 // 一定要调用super方法 103 [super layoutSubviews]; 104 105 CGFloat shopW = self.frame.size.width; 106 CGFloat shopH = self.frame.size.height; 107 108 self.iconView.frame = CGRectMake(0, 0, shopW, shopW); 109 self.nameLabel.frame = CGRectMake(0, shopW, shopW, shopH - shopW); 110 } 111 112 - (void)setShop:(XMGShop *)shop 113 { 114 _shop = shop; 115 116 self.iconView.image = [UIImage imageNamed:shop.icon]; 117 self.nameLabel.text = shop.name; 118 } 119 120 @end 121 122 123 124 125 126 127 controller 128 129 130 @property (nonatomic, strong) NSMutableArray *shops; 131 132 133 134 // 懒加载 135 // 1.第一次用到时再去加载 136 // 2.只会加载一次 137 - (NSMutableArray *)shops 138 { 139 if (_shops == nil) { 140 // 创建"模型数组" 141 _shops = [NSMutableArray array]; 142 143 // 获得plist文件的全路径 144 NSString *file = [[NSBundle mainBundle] pathForResource:@"shops.plist" ofType:nil]; 145 146 // 从plist文件中加载一个数组对象(这个数组中存放的都是NSDictionary对象) 147 NSArray *dictArray = [NSArray arrayWithContentsOfFile:file]; 148 149 // 将 “字典数组” 转换为 “模型数据” 150 for (NSDictionary *dict in dictArray) { // 遍历每一个字典 151 // 将 “字典” 转换为 “模型” 152 XMGShop *shop = [XMGShop shopWithDict:dict]; 153 154 // 将 “模型” 添加到 “模型数组中” 155 [_shops addObject:shop]; 156 } 157 } 158 return _shops; 159 } 160 161 // 创建一个商品父控件 162 XMGShopView *shopView = [XMGShopView shopViewWithShop:self.shops[index]]; 163 // 设置frame 164 shopView.frame = CGRectMake(shopX, shopY, shopW, shopH); 165 // 将商品父控件添加到shopsView中 166 [self.shopsView addSubview:shopView]; 167 168 169 /******************************************************************************/
七:Xib的使用
1 七:XIB 2 3 1:xibView中 4 /** 商品模型 */ 5 @property (nonatomic, strong) XMGShop *shop; 6 + (instancetype)shopViewWithShop:(XMGShop *)shop; 7 8 + (instancetype)shopViewWithShop:(XMGShop *)shop 9 { 10 // self == XMGShopView 11 // NSStringFromClass(self) == @"XMGShopView" 12 XMGShopView *shopView = [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self) owner:nil options:nil] lastObject]; 13 shopView.shop = shop; 14 return shopView; 15 } 16 17 - (void)setShop:(XMGShop *)shop 18 { 19 _shop = shop; 20 21 UIImageView *iconView = (UIImageView *)[self viewWithTag:1]; 22 iconView.image = [UIImage imageNamed:shop.icon]; 23 24 UILabel *nameLabel = (UILabel *)[self viewWithTag:2]; 25 nameLabel.text = shop.name; 26 } 27 28 2:控制器中设置数据 29 // 从xib中加载一个商品控件 30 XMGShopView *shopView = [XMGShopView shopViewWithShop:self.shops[index]]; 31 // 设置frame 32 shopView.frame = CGRectMake(shopX, shopY, shopW, shopH); 33 // 添加商品控件 34 [self.shopsView addSubview:shopView];
八:牛逼框架MJExtension使用
1 /******************************************************************************/ 2 八:MJExtension 3 1:是一套“字典和模型之间互相转换”的轻量级框架,模型属性 4 /** 5 * 微博文本内容 6 */ 7 @property (copy, nonatomic) NSString *text; 8 9 /** 10 * 微博作者 11 */ 12 @property (strong, nonatomic) User *user; 13 14 /** 15 * 转发的微博 16 */ 17 @property (strong, nonatomic) Status *retweetedStatus; 18 19 /** 20 * 存放着某一页微博数据(里面都是Status模型) 21 */ 22 @property (strong, nonatomic) NSMutableArray *statuses; 23 24 /** 25 * 总数 26 */ 27 @property (assign, nonatomic) NSNumber *totalNumber; 28 29 /** 30 * 上一页的游标 31 */ 32 @property (assign, nonatomic) long long previousCursor; 33 34 /** 35 * 下一页的游标 36 */ 37 @property (assign, nonatomic) long long nextCursor; 38 39 40 /** 41 * 名称 42 */ 43 @property (copy, nonatomic) NSString *name; 44 45 /** 46 * 头像 47 */ 48 @property (copy, nonatomic) NSString *icon; 49 50 2:对应方法的实现 51 /** 52 MJ友情提醒: 53 1.MJExtension是一套“字典和模型之间互相转换”的轻量级框架 54 2.MJExtension能完成的功能 55 * 字典 --> 模型 56 * 模型 --> 字典 57 * 字典数组 --> 模型数组 58 * 模型数组 --> 字典数组 59 3.具体用法主要参考 main.m中各个函数 以及 "NSObject+MJKeyValue.h" 60 4.希望各位大神能用得爽 61 */ 62 63 #import <Foundation/Foundation.h> 64 #import "MJExtension.h" 65 #import "User.h" 66 #import "Status.h" 67 #import "StatusResult.h" 68 69 /** 70 * 简单的字典 -> 模型 71 */ 72 void keyValues2object() 73 { 74 // 1.定义一个字典 75 NSDictionary *dict = @{ 76 @"name" : @"Jack", 77 @"icon" : @"lufy.png", 78 }; 79 80 // 2.将字典转为User模型 81 User *user = [User objectWithKeyValues:dict]; 82 83 // 3.打印User模型的属性 84 NSLog(@"name=%@, icon=%@", user.name, user.icon); 85 } 86 87 /** 88 * 复杂的字典 -> 模型 (模型里面包含了模型) 89 */ 90 void keyValues2object2() 91 { 92 // 1.定义一个字典 93 NSDictionary *dict = @{ 94 @"text" : @"是啊,今天天气确实不错!", 95 96 @"user" : @{ 97 @"name" : @"Jack", 98 @"icon" : @"lufy.png" 99 }, 100 101 @"retweetedStatus" : @{ 102 @"text" : @"今天天气真不错!", 103 104 @"user" : @{ 105 @"name" : @"Rose", 106 @"icon" : @"nami.png" 107 } 108 } 109 }; 110 111 // 2.将字典转为Status模型 112 Status *status = [Status objectWithKeyValues:dict]; 113 114 // 3.打印status的属性 115 NSString *text = status.text; 116 NSString *name = status.user.name; 117 NSString *icon = status.user.icon; 118 NSLog(@"text=%@, name=%@, icon=%@", text, name, icon); 119 120 // 4.打印status.retweetedStatus的属性 121 NSString *text2 = status.retweetedStatus.text; 122 NSString *name2 = status.retweetedStatus.user.name; 123 NSString *icon2 = status.retweetedStatus.user.icon; 124 NSLog(@"text2=%@, name2=%@, icon2=%@", text2, name2, icon2); 125 } 126 127 /** 128 * 复杂的字典 -> 模型 (模型的数组属性里面又装着模型) 129 */ 130 void keyValues2object3() 131 { 132 // 1.定义一个字典 133 NSDictionary *dict = @{ 134 @"statuses" : @[ 135 @{ 136 @"text" : @"今天天气真不错!", 137 138 @"user" : @{ 139 @"name" : @"Rose", 140 @"icon" : @"nami.png" 141 } 142 }, 143 144 @{ 145 @"text" : @"明天去旅游了", 146 147 @"user" : @{ 148 @"name" : @"Jack", 149 @"icon" : @"lufy.png" 150 } 151 }, 152 153 @{ 154 @"text" : @"嘿嘿,这东西不错哦!", 155 156 @"user" : @{ 157 @"name" : @"Jim", 158 @"icon" : @"zero.png" 159 } 160 } 161 162 ], 163 164 @"totalNumber" : @"2014", 165 166 @"previousCursor" : @"13476589", 167 168 @"nextCursor" : @"13476599" 169 }; 170 171 // 2.将字典转为StatusResult模型 172 StatusResult *result = [StatusResult objectWithKeyValues:dict]; 173 174 // 3.打印StatusResult模型的简单属性 175 NSLog(@"totalNumber=%d, previousCursor=%lld, nextCursor=%lld", result.totalNumber, result.previousCursor, result.nextCursor); 176 177 // 4.打印statuses数组中的模型属性 178 for (Status *status in result.statuses) { 179 NSString *text = status.text; 180 NSString *name = status.user.name; 181 NSString *icon = status.user.icon; 182 NSLog(@"text=%@, name=%@, icon=%@", text, name, icon); 183 } 184 } 185 186 /** 187 * 字典数组 -> 模型数组 188 */ 189 void keyValuesArray2objectArray() 190 { 191 // 1.定义一个字典数组 192 NSArray *dictArray = @[ 193 @{ 194 @"name" : @"Jack", 195 @"icon" : @"lufy.png", 196 }, 197 198 @{ 199 @"name" : @"Rose", 200 @"icon" : @"nami.png", 201 }, 202 203 @{ 204 @"name" : @"Jim", 205 @"icon" : @"zero.png", 206 } 207 ]; 208 209 // 2.将字典数组转为User模型数组 210 NSArray *userArray = [User objectArrayWithKeyValuesArray:dictArray]; 211 212 // 3.打印userArray数组中的User模型属性 213 for (User *user in userArray) { 214 NSLog(@"name=%@, icon=%@", user.name, user.icon); 215 } 216 } 217 218 /** 219 * 模型 -> 字典 220 */ 221 void object2keyValues() 222 { 223 // 1.新建模型 224 User *user = [[User alloc] init]; 225 user.name = @"Jack"; 226 user.icon = @"lufy.png"; 227 228 Status *status = [[Status alloc] init]; 229 status.user = user; 230 status.text = @"今天的心情不错!"; 231 232 // 2.将模型转为字典 233 // NSDictionary *dict = [status keyValues]; 234 NSDictionary *dict = status.keyValues; 235 NSLog(@"%@", dict); 236 } 237 238 /** 239 * 模型数组 -> 字典数组 240 */ 241 void objectArray2keyValuesArray() 242 { 243 // 1.新建模型数组 244 User *user1 = [[User alloc] init]; 245 user1.name = @"Jack"; 246 user1.icon = @"lufy.png"; 247 248 User *user2 = [[User alloc] init]; 249 user2.name = @"Rose"; 250 user2.icon = @"nami.png"; 251 252 User *user3 = [[User alloc] init]; 253 user3.name = @"Jim"; 254 user3.icon = @"zero.png"; 255 256 NSArray *userArray = @[user1, user2, user3]; 257 258 // 2.将模型数组转为字典数组 259 NSArray *dictArray = [User keyValuesArrayWithObjectArray:userArray]; 260 NSLog(@"%@", dictArray); 261 } 262 263 int main(int argc, const char * argv[]) 264 { 265 @autoreleasepool { 266 // 简单的字典 -> 模型 267 keyValues2object(); 268 269 // 复杂的字典 -> 模型 (模型里面包含了模型) 270 keyValues2object2(); 271 272 // 复杂的字典 -> 模型 (模型的数组属性里面又装着模型) 273 keyValues2object3(); 274 275 // 字典数组 -> 模型数组 276 keyValuesArray2objectArray(); 277 278 // 模型转字典 279 object2keyValues(); 280 281 // 模型数组 -> 字典数组 282 objectArray2keyValuesArray(); 283 } 284 return 0; 285 }
时间: 2024-11-02 05:47:05