我使用NSHashTable来存储对对象的弱引用。当哈希表中的对象被释放并且引用在哈希表中被置零时,指向nil的指针仍然驻留在哈希表中,对吗?那么,随着时间的推移,如果释放的对象没有直接从哈希表中删除,哈希表的大小会继续增长吗?现在,没有一种简单的方法可以发送通知给控制哈希表的对象,通知其中一个哈希表元素已经被删除(这是一个反馈调用意味着对象之间的通信是非常间接的,并且最好是保持这种方式的游戏)。我应该周期性地迭代哈希表以删除nil引用吗?
发布于 2013-11-20 17:15:43
这个问题是在几个月前发布的,但为了记录,NSHashTable 确实删除了发布的弱引用。因此,要回答实际问题,不需要定期迭代哈希表。
发布于 2013-04-04 02:56:58
我将创建一个管理器类,负责添加和删除您提到的对象。因此,我将通过以下几种方式之一通知哈希表:
通过方法调用直接通过方法调用(当哈希表被manager)
监听
这完全取决于您如何将这些对象绑定在一起,以及哪些模型适合最实际的设计。
https://stackoverflow.com/questions/15795491
复制相似问题