从“良好设计”的角度来看。我应该将appDelegate类用于所有应用级公共代码吗?换句话说,我有许多视图控制器需要能够做的事情。这意味着它是常见的功能,不是特定于单个视图控制器。所以问题是:我应该在appDelegate中容纳这些常用方法吗?这是它的用途吗?我应该创建另一个单独的类吗?
以下是我所说的常见功能的一些示例:
1)播放常见声音(如错误声音)。
2)显示警告消息(例如错误消息)。
3)验证应该是特定类型(十进制数字)
的输入的方法4)更新来自网络服务的应用级数据
答案 0 :(得分:2)
将所有常用功能放到appDelegate类并不是一个好主意。
1& 2)您可以创建超级类,所有视图控制器都继承它或使用类别。
3& 4)您可以创建一个正常的函数类来实现。例如你的类名是Function,你有类方法,只需简单调用[Function validate:yourdata]就可以返回boolen值。
答案 1 :(得分:1)
如果它与数据相关,那么在您的应用中使用单独的模型层对我来说最有意义。如果它的代码与您希望视图控制器的行为方式有关,那么常见的超类甚至UIViewController
类别听起来更像是正确的解决方案。
我看到app delegate更多关于设置基本应用程序结构(可能包括连接Model和Controller层)以及处理它的生命周期。