KVO原理

作者: 豆豆哥哥 | 来源:发表于2019-08-07 11:05 被阅读0次

    KOV是利用KVC和通知共同实现的

    自动发送通知

    需要手动发送通知

    + (BOOL)automaticallyNotifiesObserversForKey:(NSString *)key{
        return NO;
    }
    

    在对象中实现反方 系统就不会发出通知了

    若想要通知 者需要手动的调用
    [clase WillChangeValueForKey:@"name"];
    class,name = @"hehe";
    [clase didChangeValueForKey:@"name"];
    

    底层实现

    在运行时 会创建一个这个"对象"的子类NSKVONotifying_"对象" 把 isa指真指向子类
    重写子类的set方法 就行了

    注意

    只能监听属性

    特别注意 NSMutableArray 的设置值

    //[class.array addObject:@"ddd"] --这个方法不会调用通知的
    要用下面方法
    [[class mutableArrayValueForKey:@"array"] addObject:@"ddd"]
    
    

    相关文章

      网友评论

          本文标题:KVO原理

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