类方法singleton对象可以响应委托调用吗?

问题描述:

我有一个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

你的单例,一旦实例化,当然可以充当代表。最后,它也是一个像任何其他对象一样的对象。唯一的区别是它仅实例化一次。但是,如果你只能通过类方法访问它,并且不在属性,ivars等中存储任何数据,那么它可能根本就没有被实例化。我不确定在这种情况下它是否是一个真正的单身人士,但我已经看到人们称它为单身人士,尽管它从未实际实例化过。在这种情况下,在类方法中,self总是指类而不是实例。而一个班级不能充当代表。

所以,根据你的单身人士的样子,答案是肯定或否。