kvc/kvo复习

时间:2021-05-30 17:23:38

kvc/kvo复习

  • 1 小问题
'[<XMGPerson 0x7fb8a8f30220> setValue:forUndefinedKey:]: this
    XMGPerson * person = [[XMGPerson alloc] init];

    XMGCat *cat = [[XMGCat alloc] init];

    person.cat = cat;

    [person setValue:@"bob" forKey:@"name"];

    [person setValue:@"12" forKey:@"old"];

    [person setValue:@"tom" forKey:@"cat.name"];

    NSLog(@"%@ %@", person.name, person.old);

    NSLog(@"%@", person.cat.name);

[person setValue:@”tom” forKey:@”cat.name”];

错误出现在这里,forkey只能找到cat 不会再往下一层层按照路径查找对象的属性

正确的是


[person setValue:@"tom" forKeyPath:@"cat.name"];

总结 :

keypath > key

keypath 按照对象查找到根节点的属性

key 只查找一次

  • 2 基本使用

    • 1获取, 并设置私有属性
        [person setValue:@"12" forKeyPath:@"birth"];
    person.printBrith;
    • 2 字典转模型

      待续(睡觉) 明天再更