在程序中appDelegate委托代理类的实例只会创建一个,系统专门提供了借口来访问这个实例。所以这个实例中的所有成员变量和方法对于程序中所有的类都是可见的,所以这个类可以用来做全局传递。
[UIApplication sharedApplication] 返回一个指向代表应用程序的单例对象的指针。
[[UIApplication sharedApplication] delegate]返回的就是这个委托代理类的实例
所以在引用他的成员变量时就可以写成[[UIApplication sharedApplication] delegate].变量名,这里的变量就是一个整个程序范围内的全局变量。注意,在要使用此成员变量的地方需要导入appDelegate.h。
为了使用方便,需要在appDelegate中添加一个宏定义:
#define SharedApp ((AppDelegate *)[[UIApplication sharedApplication] delegate])
这样在使用上面的变量时就可以写成:SharedApp.变量名