我使用弱对象NSHashTable报告计数为1,即使它是空的。以下是lldb输出显示我的情况。
p [__operationWaitList count]
(NSUInteger) $4 = 1
p [__operationWaitList.allObjects count]
(NSUInteger) $7 = 0
我最好的猜测是count
计算存储在NSHashTable中的弱引用数,而不是有效对象数。但是,通过调用allObjects,我取消引用了发现没有有效对象的指针,因此生成的对象数组为空。
我想确认这一点,因为文档在这一点上有点缺乏。
答案 0 :(得分:5)
实验结果,非详尽测试,建议:
您的观察是正确的,count
返回哈希表中当前引用的数量,其中一些引用可能为空。
同样,您观察到allObjects.count
始终返回非空引用的数量。
添加新的不同对象似乎可以清除空引用。
有关此问题的文件不明确。
建议您向Apple提交错误报告,他们应该修复实施或文档。