3 回答
TA贡献1827条经验 获得超9个赞
我通常避免使用安德鲁(Andrew)使用“应用程序的心脏”一词所暗示的设计方法。我的意思是,我认为您应该避免将过多的内容混为一谈-良好的程序设计通常涉及通过“关注区域”将功能分开。
委托对象是一个当其连接的对象达到某些事件或状态时会得到通知的对象。在这种情况下,Application Delegate是一个对象,当UIApplication对象达到某些状态时,它将接收通知。在许多方面,它是一种专门的一对一观察者模式。
这意味着AppDelegate的“关注区域”正在处理特殊的UIApplication状态。其中最重要的是:
applicationDidFinishLaunching:-非常适合处理启动时的配置和构建
applicationWillTerminate:-适用于最后清理
您应该避免将其他功能放到AppDelegate中,因为它们并不真正属于那里。这些其他功能包括:
文档数据-您应该有一个文档管理器单例(对于多个文档应用程序)或一个文档单例(对于单个文档应用程序)
按钮/表/视图控制器,视图委托方法或其他视图处理(在applicationDidFinishLaunching:中顶级视图的构造除外)—这项工作应在各自的视图控制器类中进行。
许多人因为懒惰或认为AppDelegate控制着整个程序而将这些东西混入AppDelegate中。您应该避免集中在您的AppDelegate中,因为它会使应用程序中需要关注的领域变得混乱,并且无法扩展。
TA贡献1811条经验 获得超5个赞
您的应用程序代表是您应用程序的核心。它实际上是您的“程序控制器”。
Application Delegate是接收应用程序级消息的类,其中包括最常用于启动其他视图创建的applicationDidFinishLaunching消息。
虽然不完全相似,但您可以将其视为Cocoa程序的“ main()”例程。
TA贡献1830条经验 获得超3个赞
据我了解appDelegate
,它接近Application
Android。的viewDidLoad
,viewDidDisappear
相当于什么Android的生命周期。从启动到呼叫中断到显示通知,每个应用程序都有生命周期。如果您需要代码在这些system
事件发生时做一些特别的事情,那么您需要编写方法的代码。
在Android中,我们使用onPause
,onDestroy
,onCreate
还挺回调方法来处理这样的系统事件。
- 3 回答
- 0 关注
- 870 浏览
添加回答
举报