iOS开发BaseModel的创建和使用(基类)

来源:互联网 发布:酷讯dt35淘宝可靠吗 编辑:程序博客网 时间:2024/05/20 01:37
  • ios开发中数据处理和视图有许多重复使用的地方, 基类的使用可以有效的避免每次都写, 把重复的东西写到基类中, 正常创建的Molde类只需要继承基类即可, 这样有效的提高编码速度和代码质量, 基类还包括其他(BaseController, BaseView)等, 本文以BaseModel数据部分的基类为例。

先贡献基类的代码附带简单的说明

/* BaseModel.h文件 */#import <Foundation/Foundation.h>@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

BaseModel的使用

  • 首先创建model类
/* 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]; /** 添加到数组中 */        }
  • 关于BaseController 和BaseView原理和这个基本都相似, 就不一一列举了。
1 0
原创粉丝点击