1
當一個對象釋放時需要運行一些代碼。例如,我建立了一個觀察者,當對象B的名字改變時,它更新標籤A的文本。當標籤A的保留計數達到0時,我想從B中刪除觀察者。如何在一個對象釋放時運行一些代碼dealloc
可能的解決方案: 1子類並在dealloc中調用clean代碼。
2創建一個包裝類,它能夠在dealloc中運行任意代碼並將該對象與標籤A關聯。當獲得dealloc時,關聯的對象也會獲得dealloc(假設只有A擁有強引用),那麼代碼被調用。
我不喜歡第一個,因爲它是如此的侵入性,使它幾乎沒用,只需要子類只是爲了一些容易的東西。所以我使用2號。
你有什麼意見嗎?你怎麼做呢?
聽起來好像沒有這些對象是控制器,通常一個控制器會執行這種角色。 – Wain