設計一個不強引用對象的單例字典
大家都知道,使用NSDictionary存儲對象的時候會強引用對象,導緻被存儲對象的引用計數+1,有時候,我們想用單例來存儲對象,但又不希望強引用存儲的對象,這該怎麼實作呢?
在這裡,我們可以使用NSMapTable來實作這個功能.
我直接給出源碼:
WeakDictionary.h + WeakDictionary.m
測試代碼:
測試圖例:
至于為何要設計出這麼一種單例出來,這種不增加對象引用計數卻能持有對象的單例,你想想能有什麼用處呢:)
設計一個不強引用對象的單例字典
大家都知道,使用NSDictionary存儲對象的時候會強引用對象,導緻被存儲對象的引用計數+1,有時候,我們想用單例來存儲對象,但又不希望強引用存儲的對象,這該怎麼實作呢?
在這裡,我們可以使用NSMapTable來實作這個功能.
我直接給出源碼:
WeakDictionary.h + WeakDictionary.m
測試代碼:
測試圖例:
至于為何要設計出這麼一種單例出來,這種不增加對象引用計數卻能持有對象的單例,你想想能有什麼用處呢:)