从"好的设计"的角度来看。 我是否应该对所有应用级公共代码使用 appDelegate 类? 换句话说,我有很多事情需要许多视图控制器能够完成。 这意味着它是通用功能,而不是特定于单个视图控制器。 所以问题是:我应该将这些常用方法放在appDelegate中吗? 这就是它的用途吗? 我应该创建另一个单独的类吗?
以下是我所说的常见功能的几个示例:
1)播放常见声音(如错误声音)。
2) 显示警报消息(如错误消息)。
3) 验证应为特定类型(十进制数字)的输入的方法
4) 从 Web 服务更新应用级数据
将所有常用函数放到 appDelegate class 并不是一个好主意。
1 & 2)您可以创建超类,所有视图控制器都继承它或使用类别。
3 & 4)您可以创建一个普通的函数类来实现。例如,你的类名是函数,你有类方法,使用它只是简单地调用[函数验证:你的数据]返回布尔值。
如果它与数据相关,那么在您的应用程序中拥有单独的模型层对我来说最有意义。 如果代码专门与视图控制器的行为方式相关,那么常见的超类甚至UIViewController
类别听起来更像是正确的解决方案。
我认为应用程序委托更多地是关于设置基本应用程序结构(可能包括连接模型和控制器层)并处理其生命周期。