我不清楚是否需要创建app委托类,而不是直接在viewcontroller中添加委托方法。
为什么有人想要一个单独的委托类?风格偏好?设计约束? (我正在关注MVC模型,正如Xcode用户和应用程序制造商那样)。
我问,因为我有3本书解释了以不同方式编写应用程序的过程;所以我想知道是否只是作者的个人偏好,或者是否有不同的内幕(我所有的C ++书籍都以相同的方式解释概念;现在我正在使用OBJ-C和可可触摸当我看到同一个应用程序的不同实现时,我感到完全迷失方向。)
让我想到的另一件事是需要创建一个单独的类作为viewcontroller,而不是直接使用Xcode中的模板(它自动创建一个视图控制器);因为另一本书展示了他们如何加载模板,然后他们从头开始创建一个viewcontroller类....再次作者的个人偏好或者还有其他事情发生?
抱歉,如果听起来很简单;但我是OBJ-C的初学者:)
谢谢!
答案 0 :(得分:5)
app delegate提供了一个集中的应用程序范围的类,可用于协调整个应用程序的行为。您可以使用[[UIApplication sharedApplication]委托]方法一致地访问您的App委托 - 这非常强大。
它还负责处理iOS调用的行为(applicationDidBecomeActive,applicationWillTerminate等),所以记住它是将你的一些应用程序连接在一起的好地方(也许你是从xib加载并需要添加视图,例如)或处理应用程序生命周期逻辑。
注意事项;过度使用app delegate有点太容易了。没有考虑设计和开发,它很快就会成为一个难以维护的混乱。就个人而言,我有一个规则;我只将它用于应用程序生命周期工作,并在我的应用程序的组件部分之间进行协调,并且很少直接从UI层调用它。
答案 1 :(得分:2)
快速浏览the application delegate protocol表明,iOS应用程序确实应该拥有一个应用程序代理。
请确保不要将太多东西卷入那个对象。从我所读过的内容来看,将它作为泥球的大球而不是严格定义的东西太常见了。任何与app-delegate责任没有直接关系的东西都应该放在其他控制器中。应用程序委托是创建和拥有这些控制器的好地方,因此委托应该很容易向他们发送任何必要的消息(例如,“嘿,我们只是得到了内存警告;清理了一些东西”)。 / p>