NSHashTable计数错误报告非空

时间:2015-04-26 16:13:58

标签: ios objective-c macos cocoa data-structures

我使用弱对象NSHashTable报告计数为1,即使它是空的。以下是lldb输出显示我的情况。

p [__operationWaitList count]
(NSUInteger) $4 = 1

p [__operationWaitList.allObjects count]
(NSUInteger) $7 = 0

我最好的猜测是count计算存储在NSHashTable中的弱引用数,而不是有效对象数。但是,通过调用allObjects,我取消引用了发现没有有效对象的指针,因此生成的对象数组为空。

我想确认这一点,因为文档在这一点上有点缺乏。

1 个答案:

答案 0 :(得分:5)

实验结果,非详尽测试,建议:

  • 您的观察是正确的,count返回哈希表中当前引用的数量,其中一些引用可能为空。

  • 同样,您观察到allObjects.count始终返回非空引用的数量。

  • 添加新的不同对象似乎可以清除空引用。

有关此问题的文件不明确。

建议您向Apple提交错误报告,他们应该修复实施或文档。