http://nshipster.com/nshashtable-and-nsmaptable/
http://www.cocoachina.com/ios/20150519/11809.html
看了一下別人的 code 看到了這個關鍵至 NSHashTable
1 | NSSet(NSMutableSet)持有其元素的強引用,同時這些元素是使用hash值及isEqual:方法來做hash檢測及判斷是否相等的。 |
突然想到之前
有時候未遇到類似的問題,當我有一個 superviser 要關注多個物件時,物件會像這個 superviser 註冊,
之前都常常是用 NSSet 之類的 strong 連結物件,所以該物件消失時,還得向這個 superviser 說我要消失了,
如果使用了 NSHashTable 可以使用 weak reference,當被專注的自行 dealloc 時,直接被 nullable 而移除,
似乎這層關係就簡單多了