![](/img/trans.png)
[英]How to make a KVO observer and feed tableview with MutableArray info?
[英]How to remove KVO observer?
在视图控制器中,我创建了一个子视图数组,可以随时从父视图中删除这些子视图,因此它们的寿命比视图控制器的寿命短。
创建它们时,我几乎这样做:
frame
属性的观察者。 子视图没有对视图控制器的引用。
当用户删除子视图时,它会被释放,并且控制台中出现一个错误,告诉我该视图的frame
关键路径的观察者尚未被删除。
当正在观察的子视图未保留对观察者的引用时,如何删除观察者?
反正没有做诸如removeAllObservers
事情吗?
我宁愿不必在子视图中创建对观察者的引用,因为它有点违反了KVO的观点(我不妨使用委托设置)。
我不确定为什么要观察框架,但是如果您只是想知道何时删除框架,可以改用NSNotificationCenter。 从那里,您的子视图可以发布到已被更改/删除的通知中心。 然后,您的父视图将看到该通知,并可以根据通知中的内容对其进行处理。 它有点松散地绑定了kvo。
这是一个很好的设置示例。 通过Objective-C中的NSNotificationCenter发送和接收消息?
这样,当超级视图被释放/卸载时,它只需要从通知中心观看该术语中删除自己即可。
无论如何,这是除KVO和代表之外的另一种处理方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.