2013-03-11 130 views
1

我有一個SettingsManager單身人士處理整個我的應用程序的用戶設置(例如,每當在任何視圖控制器播放聲音,檢查SettingsManager以查看聲音是否打開,以及在多大的音量)。類方法singleton對象可以響應委託調用嗎?

該類對象(我可以通過[SettingsManager sharedManager]訪問)可以響應其他地方發送的委託消息嗎?例如,如果我在SettingsViewController中切換聲音,類方法對象是否可以選擇並繼續並將這些更改保存到磁盤?

+0

最簡單的做法是從適當的位置調用SettingsManager的save數據方法,無論這是否是委託回調。 – 2013-03-11 13:51:21

+0

@AaronBrager它是一個單例,sharedManager是一個類方法,而不是一個實例方法。我無法調用其他方法,對嗎? – Luke 2013-03-11 13:52:18

+1

sharedManager是一種返回對象的一個​​實例(唯一實例)的類方法。 – 2013-03-11 13:53:29

回答

2

你的單例,一旦實例化,當然可以充當代表。最後,它也是一個像任何其他對象一樣的對象。唯一的區別是它僅實例化一次。但是,如果你只能通過類方法訪問它,並且不在屬性,ivars等中存儲任何數據,那麼它可能根本就沒有被實例化。我不確定在這種情況下它是否是一個真正的單身人士,但我已經看到人們稱它爲單身人士,儘管它從未實際實例化過。在這種情況下,在類方法中,self總是指類而不是實例。而一個班級不能充當代表。

所以,根據你的單身人士的樣子,答案是肯定或否。

相關問題