美文网首页
KVC字典转模型底层实现原理

KVC字典转模型底层实现原理

作者: 西门丨不吹雪 | 来源:发表于2019-03-01 16:29 被阅读0次

    遍历字典里面所有的key

    key:name
    就去模型中查找有没有setName:,直接调用这个对象setName:赋值
    假如没有找到setName:。就会去模型中查找有没有_name属性,_name = value
    假如没有找到_name,还会去模型中查找name属性
    最终没有找到,就会直接报错。

     + (instancetype)flageWithDict:(NSDictionary *)dict
    {
        XMGFlag *flag = [[self alloc] init];
    
    // 利用KVC字典转模型,下面实现方法就是此注释方法的实现
    //    [flag setValuesForKeysWithDictionary:dict];
      
        [dict enumerateKeysAndObjectsUsingBlock:^(NSString *key, id obj, BOOL *stop) {
         NSString *funcName = [NSString stringWithFormat:@"set%@:",key.capitalizedString];
         if ([flag respondsToSelector:NSSelectorFromString(funcName)]) {
         [flag setValue:obj forKeyPath:key];
        }
    }];
    
    return flag;
    }

    相关文章

      网友评论

          本文标题:KVC字典转模型底层实现原理

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