Ios 我是否应该将appDelegate用于所有单例样式的应用程序级代码?

Ios 我是否应该将appDelegate用于所有单例样式的应用程序级代码?,ios,singleton,appdelegate,Ios,Singleton,Appdelegate,从“好的设计”的角度来看。我是否应该对所有应用程序级通用代码使用appDelegate类?换句话说,我有许多视图控制器需要能够完成的事情。这意味着它是通用功能,而不是特定于单个视图控制器。所以问题是:我应该把这些常用方法放在appDelegate中吗?这就是为什么?我应该创建另一个单独的类吗 下面是我提到的一些常见功能的示例: 1) 播放常见声音(如错误声音) 2) 显示警报消息(例如错误消息) 3) 方法验证应为特定类型(十进制数字)的输入 4) 从web服务更新应用程序级数据如果数据相关,那

从“好的设计”的角度来看。我是否应该对所有应用程序级通用代码使用appDelegate类?换句话说,我有许多视图控制器需要能够完成的事情。这意味着它是通用功能,而不是特定于单个视图控制器。所以问题是:我应该把这些常用方法放在appDelegate中吗?这就是为什么?我应该创建另一个单独的类吗

下面是我提到的一些常见功能的示例:

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

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

3) 方法验证应为特定类型(十进制数字)的输入


4) 从web服务更新应用程序级数据

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


我认为appDelegate更多的是关于设置基本应用程序结构(可能包括连接模型层和控制器层)和处理其生命周期的内容。

将所有常用函数放在appDelegate类中不是一个好主意

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


3&4)您可以创建一个普通函数类来实现。e、 你的类名是Function,你有class方法,使用它只需简单的调用[Function validate:yourdata]返回boolen值。

一些优点。我将核心数据对象用于数据模型层。我应该在对象上使用静态方法,让它们从我的web服务更新自己吗?我甚至没有想到视图控制器上的类别或超级类,尽管现在看起来很明显。在这个应用程序中有一个或另一个优点吗?我希望我可以标记多个正确的,但你确实得到了一个向上投票。谢谢,我喜欢!从视图控制器超类继承现在对我来说似乎很明显,但我特别喜欢随机公共函数的函数类思想。除非有人告诉我为什么这是一个糟糕的想法,否则我将标记为正确并使用你的想法。谢谢,谢谢。我认为每个软件开发人员都有自己的函数类,这可以使编程更容易(我有一个函数类,我总是在每个项目中使用它)。随着时间的推移,您的个人函数类将变得强大:)因此,如果您发现任何您认为可以重用的常用方法,那么只需将其添加到您自己的个人函数类:)就像注释:对于2)常见UIAlertView。。。如果您不需要与UIAlertViewDelegate交互(每个警报只有一个OK按钮来关闭警报……并且它们的委托将为零),则可以使用方法从NSObject扩展到一个类,该类可以从NSObject扩展到3中),并使用方法显示公共UIAlertView。