为了账号安全,请及时绑定邮箱和手机立即绑定

AppDelegate的用途是什么,我如何知道何时使用它?

AppDelegate的用途是什么,我如何知道何时使用它?

宝慕林4294392 2019-11-22 13:13:00
我刚刚开始在iPhone应用程序上工作。我怎么知道什么时候应该在AppDelegate和自定义类中放东西?是否存在与使用AppDelegate等模式的另一种编程语言(如Python或PHP)相匹配的规则或任何类型的?
查看完整描述

3 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

我通常避免使用安德鲁(Andrew)使用“应用程序的心脏”一词所暗示的设计方法。我的意思是,我认为您应该避免将过多的内容混为一谈-良好的程序设计通常涉及通过“关注区域”将功能分开。

委托对象是一个当其连接的对象达到某些事件或状态时会得到通知的对象。在这种情况下,Application Delegate是一个对象,当UIApplication对象达到某些状态时,它将接收通知。在许多方面,它是一种专门的一对一观察者模式。

这意味着AppDelegate的“关注区域”正在处理特殊的UIApplication状态。其中最重要的是:

  • applicationDidFinishLaunching:-非常适合处理启动时的配置和构建

  • applicationWillTerminate:-适用于最后清理

您应该避免将其他功能放到AppDelegate中,因为它们并不真正属于那里。这些其他功能包括:

  • 文档数据-您应该有一个文档管理器单例(对于多个文档应用程序)或一个文档单例(对于单个文档应用程序)

  • 按钮/表/视图控制器,视图委托方法或其他视图处理(在applicationDidFinishLaunching:中顶级视图的构造除外)—这项工作应在各自的视图控制器类中进行。

许多人因为懒惰或认为AppDelegate控制着整个程序而将这些东西混入AppDelegate中。您应该避免集中在您的AppDelegate中,因为它会使应用程序中需要关注的领域变得混乱,并且无法扩展。


查看完整回答
反对 回复 2019-11-22
?
四季花海

TA贡献1811条经验 获得超5个赞

您的应用程序代表是您应用程序的核心。它实际上是您的“程序控制器”。

Application Delegate是接收应用程序级消息的类,其中包括最常用于启动其他视图创建的applicationDidFinishLaunching消息。

虽然不完全相似,但您可以将其视为Cocoa程序的“ main()”例程。


查看完整回答
反对 回复 2019-11-22
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

据我了解appDelegate,它接近ApplicationAndroid。的viewDidLoadviewDidDisappear相当于什么Android的生命周期。从启动到呼叫中断到显示通知,每个应用程序都有生命周期。如果您需要代码在这些system事件发生时做一些特别的事情,那么您需要编写方法的代码。

在Android中,我们使用onPauseonDestroyonCreate还挺回调方法来处理这样的系统事件。


查看完整回答
反对 回复 2019-11-22
  • 3 回答
  • 0 关注
  • 778 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信