這與標準singleton pattern稍有不同,因爲如果所有對象的外部引用都已釋放,那麼單例也將被釋放。然後,稍後,當請求一個新的對象時,將創建一個新的單例。所以,這樣的事情:如何確保Objective-C中任何時候只有一個類的實例?
MyThing *thing1 = [MyThing new];
MyThing *thing2 = [MyThing new];
// thing1 & thing2 are the same object.
thing1 = nil;
thing2 = nil;
thing1 = [MyThing new];
thing2 = [MyThing new];
// thing1 and thing2 are a the same objet, but it's a different object than above.
我試圖用微弱的靜態變量來掛在我的範圍的單,但沒有工作,因爲我沒有辦法來增加ARC下的保留計數。這讓我想知道:這甚至有可能嗎?
爲什麼你需要這個? – Abizern 2014-10-31 21:18:05
看起來像通過工廠訪問的弱引用會做到這一點。工廠必須像單身工廠一樣工作。 – 2014-10-31 21:21:38
因爲我不會經常需要這個對象,但是當我這樣做時,我會想要一次訪問一堆分離的地方中的同一個對象。 – theory 2014-10-31 21:21:52