为什么我们在应用程序中使用app delegate

时间:2011-08-04 04:46:10

标签: iphone

我是iphone开发的新手,我需要一个数组,我用它来访问不同的类,所以我的大四学生告诉我你应该在App委托中声明并访问它需要的另一个类,所以我写了一行

MyAppAppDelegate * appObject = 
                 (MyAppAppDelegate*)[[UIApplication sharedApplication]delegate];

我成功地完成了我的任务,但我无法100%获得它。有人告诉我们为什么要使用这个以及我们在什么情况下使用它?

2 个答案:

答案 0 :(得分:1)

运行应用程序时,首先加载

AppDelegate,因为它包含窗口。因此,您要在整个项目中访问的变量和对象在AppDelegate中声明。您只需要创建一个实例,就可以访问AppDelegate中的所有对象。

答案 1 :(得分:1)

ApplicationDelegate 可以作为单例类使用,但你必须自行决定使用它 - 并且对此有不同的意见 - 但是如果你有一些全局类型的属性或方法你想要回忆来自其他各种类,我强调很少,然后ApplicationDelegate可能是添加这些的好地方。

是的,这是糟糕的设计 - 但如果你谨慎,你可以侥幸逃脱,正如@Sedate Alien提到的那样,看看依赖注入。

顺便说一句,ApplicationDelegate的目的主要是处理加载应用程序,返回主屏幕,从主屏幕返回等事件等。