本文共 1819 字,大约阅读时间需要 6 分钟。
/* BaseModel.h文件 */#import@interface BaseModel : NSObject/* 这里也可以添加每个地方都要用到的属性 比如id,name等等, 直接以正常属性书写方式写在这里即可 */@property (nonatomic, strong) NSString *name;@property (nonatomic, strong) NSString *nID; /* 这里的参数以自己工程为准, 每个接口都有的参数可以写在这里 */+ (id)modelWithDictionary:(NSDictionary *)dic; /** 这是公用的过滤接口数据的方法 */@end/* 注意: id 为系统关键字所以 属性声明时写的是nID 需要在后面过滤一下即可 */
/* BaseModel.m文件 */#import "BaseModel.h"@implementation BaseModel- (void)setValue:(id)value forUndefinedKey:(NSString *)key{ if ([key isEqualToString:@"id"]) { self.nID = value; } /* 如果参数的key 是系统关键字的话需要在这里过滤一下, 把value赋给我们自己声明的属性即可 */}/* 根据数据字典返回model */+ (id)modelWithDictionary:(NSDictionary *)dic { __strong Class model = [[[self class] alloc] init]; [model setValuesForKeysWithDictionary:dic]; return model;}@end
/* ChinnelModel.h */#import "BaseModel.h"@interface ChannelModel : BaseModel /* 这里继承BaseModel *//* 属性只需要写这个接口自己特有的属性即可, 公有的不需要写, 过滤方法和model生成的方法也不需要写 */@property (nonatomic, copy) NSString *title;@property (nonatomic, copy) NSString *pk;@property (nonatomic, copy) NSString *list_icon;@property (nonatomic, strong) NSArray *sons;@end/* ChinnelModel.m */#import "ChannelModel.h"@implementation ChannelModel/* 这里什么的都不需要写 */@end
NSMutableArray *subArr = [NSMutableArray arrayWithCapacity:0]; NSArray *arr = result[@"data"][@"datas"];/** 拿到接口数据中要用的数组 */ for (NSDictionary *dic in arr) { /** 便是数组 */ ChannelModel *model = [ChannelModel modelWithDictionary:dic]; /** 直接调用BaseModel 的方法即可 */ [subArr addObject:model]; /** 添加到数组中 */ }
转载地址:http://slvsn.baihongyu.com/