use*_*691 3 memory-management hashtable objective-c automatic-ref-counting
我使用NSHashTable来存储对象的弱引用.当散列表中的对象被释放并且引用在散列表中归零时,指向nil的指针仍然驻留在散列表中,对吗?所以随着时间的推移,如果没有直接从哈希表中删除被解除分配的对象,哈希表的大小会继续增长吗?现在,没有简单的方法向控制哈希表的对象发送通知,其中一个哈希表元素已被删除(这是一个游戏,其中反馈调用意味着对象之间的通信非常间接,并且最好保持这种方式) .我应该定期迭代哈希表以删除nil引用吗?
这个问题是几个月前发布的,但是为了记录,NSHashTable 确实删除了已发布的弱引用.所以要回答实际问题,不,你不需要定期迭代哈希表.