AppDelegate的科幻用法

来源:互联网 发布:java 自己实现base64 编辑:程序博客网 时间:2024/06/09 23:01
 AppDelegate *_sysDege = [[UIApplication sharedApplication] delegate];
这里的_sysDege就指向一个系统代理的指针,而且是每个app内置的,可以随时调用的哟,有了他就有了以下便利:
1.你可以很容易的拿到UINavigationController写应用写的多了,为了后面view切换方便,经常会使用基于UINavigationController的结构。后来写着越来越科幻,在基于UINavigationController的view上,addSubview,结果add的view还要继续push,这时候已经没有UINavigationController了怎么办呢。好吧,我原来是直接搁全局变量的,没想到这个是可以直接拿到的。
2.你可以直接使用AppDelegate声明的变量
拿到一个已经初始化好的类,里面的变量肯定也可以直接调用喽,回到以前不同view之间的变量传递话题,都有啥办法来着?

给第二个类声明一个delegate;
另外实现一个单例;
通过消息通知;
通过文件交换;
通过NSUserDefaults;
通过全局变量;
通过变量绑定;
通过Block;
好吧,我记得早先讨论这个传值问题的时候,我只知道三种方法,现在随便一说就八种了,而且加上今天要说的这个就是九种了,再
3.调用一些全局函数
很多时候,我们一个方法,不仅这个类里要用到,那个类里也要用到,为了实现方便调用和统一管理,我们会把多次用的类写到一个单例里面,当然这个时候在管理上还是有一些混乱的:有的函数是公用的,放在哪个应用里都可以用;有些函数是只有这个app才会用。所以现在你知道怎么把这些函数分开了吧?
ok,上面的用法很方便哈,但是总不能每次调用的时候,都写那么个变量出来吧,很长很urgy,肯定要自定义一个宏了:
#define sysDege (AppDelegate *)[[UIApplication sharedApplication] delegate]
0 0