任何人都可以告诉我什么时候在iPhone编程中使用AppDelegate.m和AppDelegate.h?我只使用ViewController.m和ViewController.h进行基础学习。我只想知道何时以及为什么使用AppDelegate。谢谢。 !AppDelegate.m和View Controller.m之间的区别
回答
两者都定义类,但类用于不同的事情。 ViewController.h/m定义了一个视图控制器类,用于管理视图的层次结构 - 基本上是一个应用程序的一个屏幕。您可能有多个屏幕,每个屏幕都有自己的视图控制器。
AppDelegate.h/m定义了一个管理整个应用程序的类。该应用程序将创建该类的一个实例并发送该对象消息,让代理在定义好的时间影响应用程序的行为。例如,应用程序完成启动并准备做一些有趣的事情时,会发送-application:didFinishLaunchingWithOptions:。请查看UIApplicationDelegate reference page以获取应用程序委托可以实现的用于修改应用程序行为的消息列表。
该视图控制器。 h/m负责控制模型和视图之间的连接(关于MVChere)。
AppDelegate。 h/m负责您应用程序的生命周期。当用户按下home按钮并退出应用程序时该怎么办,该应用程序进入后台时该怎么做。像这样的事情。
我想添加以下内容到@ Caleb的答案。
如果不小心,AppDelegate很容易成为应用程序中访问量最大的对象之一。我通常不会从任何ViewController调用AppDelegate中的方法。除非需要向AppDelegate报告会影响整个应用程序行为的事情。
我把我的AppDelegate以下:
- 初始化:凡是需要在非常首次发射完成(之后的安装或更新)从版本
- 数据迁移到版本(例如,如果您使用CoreData和迁移)通过IBOutlets从MainWindow.xib中
- 链接对象确定初始取向
- 配置
- 保存未提交发动在应用程序终止或进入后台模式之前的数据/状态
- 注册Apple推送通知服务并将设备令牌发送到我们的服务器
- 打开支持的应用程序URL之一(例如,地图://)
有关其他用例场景以及AppDelegate的更多介绍,请参阅iOS Application Programming Guide。
+1用于指出应用程序委托的危险。有些人用它来做各种事情,主要是因为它是单身人士,因此很容易在全球范围内访问。我不认为这是一个好方法。 – Caleb 2011-05-19 22:23:06
- 1. Front Controller和View Helper之间的区别
- 2. SurfaceView和View之间的区别?
- 3. 'view'和'base'关系之间的区别
- 4. '+ ='和'= +'之间的区别?
- 5. {!!之间的区别!!}和{{}}
- 6. ==和case之间的区别?
- 7. '#','%'和'$'之间的区别
- 8. | =和^ = css之间的区别
- 9. “%〜dp0”和“。\”之间的区别?
- 10. .eq之间的区别。和==
- 11. ==和.equals()之间的区别?
- 12. `%in%`和`==`之间的区别
- 13. MySQL数据库中TABLE和VIEW之间有什么区别?
- 14. 在我的View Controller.m上填充Dealloc
- 15. View和View Controller有什么区别?
- 16. SPFile和PublishingPage类别之间的区别
- 17. System.Timers.Timer Enabled = true和.Start()之间的区别Enabled = true和.Start()之间的区别
- 18. symfony view:分享应用程序之间的layout.php,但有区别
- 19. NSthread和NStimer和NSNotifcation之间的区别?
- 20. Java和C#和.NET之间的区别
- 21. sys.log()和console.log()和console.error()之间的区别?
- 22. $ .ajax()和$ .get()和$ .load()之间的区别
- 23. javascript中的/ * * /和//之间的区别
- 24. python中的[]和[,,]之间的区别
- 25. QWidget的setStyleSheet和QApplication之间的区别
- 26. CKeditor的getHtml()和getData()之间的区别
- 27. make中的“$(shell ...)”和“$$(...)”之间的区别
- 28. C中的/ +和+之间的区别?
- 29. Alamofire的responseJSON和responseData之间的区别
- 30. WordPress的:site_id和blog_id之间的区别?
说到生命周期,声明应用程序需要在不同'viewcontrollers'中使用的全局变量必须位于'AppDelegate'文件中。 – Luca 2012-02-19 16:36:58