KVO的那些坑

1,108 阅读1分钟

观察者模式一种常用的设计模式,可以实现数据流的自动传递。而iOS的开发本质上就是事件流和数据流的传递及响应。

但是KVO却有一些显而易见的问题。

及时remove

如果观察者释放后没有从observer中remove,会导致崩溃。

重复remove

remove次数必须与addObserver次数一致,多remove会导致崩溃。 addObserver几次,就需要remove几次。

线程问题

修改发生在什么线程,接受到observer响应的方法就在什么线程上执行。