为什么NSHashTable会继续引用指针?

时间:2017-06-23 00:41:06

标签: ios swift memory-management

我需要一个弱的NSHashTable对象,如果一个对象变为nil,我希望NSHashTable自动从列表中删除该对象。

以下是代码:

import Foundation

class Router: NSObject {
  let listeners: NSHashTable<Listener> = NSHashTable.weakObjects()
}



class Listener: NSObject {
}




let router = Router()
var listener1: Listener? = Listener()

router.listeners.add(listener1)

print("before", router.listeners.count)

listener1 = nil

print("after", router.listeners.count)

日志是:

before 1
after 1

有可能我不理解弱引用的散列表的主要用途吗?我想这样做的原因是,如果对象丢失了所有强引用,那么也会从哈希表中删除。

0 个答案:

没有答案