我应该将appDelegate用于所有单例样式的应用级代码吗?

时间:2012-11-15 14:14:36

标签: ios singleton appdelegate

从“良好设计”的角度来看。我应该将appDelegate类用于所有应用级公共代码吗?换句话说,我有许多视图控制器需要能够做的事情。这意味着它是常见的功能,不是特定于单个视图控制器。所以问题是:我应该在appDelegate中容纳这些常用方法吗?这是它的用途吗?我应该创建另一个单独的类吗?

以下是我所说的常见功能的一些示例:

1)播放常见声音(如错误声音)。

2)显示警告消息(例如错误消息)。

3)验证应该是特定类型(十进制数字)

的输入的方法

4)更新来自网络服务的应用级数据

2 个答案:

答案 0 :(得分:2)

将所有常用功能放到appDelegate类并不是一个好主意。

1& 2)您可以创建超级类,所有视图控制器都继承它或使用类别。

3& 4)您可以创建一个正常的函数类来实现。例如你的类名是Function,你有类方法,只需简单调用[Function validate:yourdata]就可以返回boolen值。

答案 1 :(得分:1)

如果它与数据相关,那么在您的应用中使用单独的模型层对我来说最有意义。如果它的代码与您希望视图控制器的行为方式有关,那么常见的超类甚至UIViewController类别听起来更像是正确的解决方案。

我看到app delegate更多关于设置基本应用程序结构(可能包括连接Model和Controller层)以及处理它的生命周期。