美文网首页
iOS 中简单的model的使用

iOS 中简单的model的使用

作者: 这小子 | 来源:发表于2017-04-25 17:37 被阅读381次

    开发中,我们经常会对model进行传值,特别是当显示列表数据时,使用字典转model是非常方便的,MJExtension是非常方便的字典转model的三方库,其实直接利用KVC进行字典转model也是非常方便的.以下是具体代码,可以正常复制粘贴到项目上运行的,并非代码片段

    1.首先新建一个BaseModel
    BaseModel.h文件中什么都不用写
    BaseModel.m写上两个方法

    - (instancetype)initWithDictionary:(NSDictionary *)dictionary {
        self = [super init];
        if (self) {
            //使用KVC的封装好的字典操作方法
            [self setValuesForKeysWithDictionary:dictionary];
        }
        return self;
    }
    
    //对于特殊字段的处理时限以下方法
    - (void)setValue:(id)value forUndefinedKey:(NSString *)key {
    }
    

    2.新建一个NSObject,基于BaseModel
    起名为MyModel
    MyModel.h文件添加属性和方法

    @property (nonatomic, copy) NSString *name;
    @property (nonatomic, copy) NSString *userid;
    
    + (instancetype)modelWithDictionary:(NSDictionary *)dict;
    

    MyModel.m文件实现方法

    + (instancetype)modelWithDictionary:(NSDictionary *)dict {
        
        MyModel *model = [[self alloc] initWithDictionary:dict];
        return model;
    }
    
    //对于特殊字段的处理时限以下方法
    - (void)setValue:(id)value forUndefinedKey:(NSString *)key {
        if ([key isEqualToString:@"corpName"]) {
            self.name = value;
        }
    }
    

    3.控制器中引用#import "MyModel.h", 定义属性
    可以在viewDidload中进行测试

    @property (nonatomic, strong) MyModel *myModel;
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        
        NSDictionary *dic = @{@"id":@"123",
                              @"corpid":@"hs",
                              @"corpName":@"shhs",
                              @"userid":@"nmf",
                              @"maker":@"zq",
                              @"statue":@"走势"};
       
        self.myModel = [MyModel modelWithDictionary:dic];
        
        NSLog(@"%@",[self.myModel valueForKey:@"name"]);
    }
    

    这样,简单的KVC模式的字典转模型结束了,语言组织能力有待提高,在锻炼中

    相关文章

      网友评论

          本文标题:iOS 中简单的model的使用

          本文链接:https://www.haomeiwen.com/subject/zenvzttx.html