我正在努力弄清楚为什么KVO会保留所有正在观察的值。
场景:我有一个带弱引用的NSMutableArray。 (使用CFArrayCreateMutable和Callback设置为保留和释放都为NULL)。意味着任何添加的对象都不会被保留/释放。
我有一个NSArrayController,它观察NSMutableArray的值。
但是现在,NSMutableArray的每个对象也都被保留了。为什么会发生这种情况?如何阻止这种情况?
答案 0 :(得分:1)
你怎么知道某些东西保留了这些物品?你不是在看-retainCount,是吗?如果是,请不要这样做。
如果您阅读了the way KVO works,您会发现在开始观察对象时会在幕后创建一些对象。为了成功使用KVO,你真的不需要知道或考虑这些对象 - 事实上,你可以知道的并不多 - 但是你也不应该担心除了你自己可能会或可能不会保留东西。