美文网首页
KVC的简单用法

KVC的简单用法

作者: 或跃在渊 | 来源:发表于2016-07-27 19:18 被阅读0次

    KVC是给对象的成员变量赋值和拿到成员变量的值得另一种方式(也可通过调用set方法和get方法实现)

    创建一个学生类,在头文件中声明几个属性

    @property(nonatomic, copy) NSString * name;//姓名
    @property(nonatomic, copy) NSString * sex;//性别
    @property(nonatomic, assign) float face;//颜值
    

    在回到ViewController.m中

    通过key-path的方式给属性赋值

    // 创建一个学生对象stu
    [stu setValue:@"老王" forKey:@"name"];
    [stu setValue:@"男" forKey:@"sex"];
    [stu setValue:@"99" forKey:@"face"]
    

    注:通过KVC的方式去操作成员变量的时候,key值要与属性名保持一致。否则会导致崩溃,但是这个崩溃是可以解决的
    解决因为KVC的key值和属性名不一致而造成的崩溃问题
    a.赋值的时候key值和属性不一样:
    重写setValue:forUnderfineKey:方法
    b.获取值得时候,key值和属性名不一样:
    重写valueForUndefinedKey:方法

    在学生类的.m文件中重写

    //1.重写这个方法可以避免因为调用KVC的方法给成员变量赋值的时候,因为key写错而造成的崩溃问题
    //2.将指定的key对应的值,赋给另外一个key对应的值(一般用在通过字典给属性赋值的时候)
    //参数1:给写错的key对应的成员变量赋的值
    //参数2:写错的key值
    - (void)setValue:(id)value forUndefinedKey:(NSString *)key{
    }
    
    //返回值:重新指定因为key错误而找不到返回值的方法的新的返回值(给valueForKey:方法返回一个新的返回值)
    //参数:错误的key值
    - (id)valueForUndefinedKey:(NSString *)key{
        return [NSString stringWithFormat:@"%@错误!!!", key];
    }
    

    相关文章

      网友评论

          本文标题:KVC的简单用法

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