AppDelegate的科幻用法

学习老是一个按部就班的过程,刚开始的时候知道的东西少,当遇到一个需求时会绞尽脑汁来想怎么来实现,而随着学习的不断深刻,了解的东东愈来愈多,再遇到一个需求的时候总会瞬间有多个解决文案,这时候的问题就是选一个最佳的解决文案。好像扯远了,仍是说说一直以为不起眼没研究过的AppDelegate吧。
说没研究过也不对,像应用的起动过程,各个代理的执行顺序,注册推送事件获取推送信息,打开URL啥的,都反复研究过,此次要说的科幻用法主要是指:“delegate”。只是忽然一下思路开阔的由感而发。下面开始: php

AppDelegate *_sysDege = [[UIApplication sharedApplication] delegate];

这里的_sysDege就指向一个系统代理的指针,并且是每一个app内置的,能够随时调用的哟,有了他就有了如下便利:
1.你能够很容易的拿到UINavigationController
写应用写的多了,为了后面view切换方便,常常会使用基于UINavigationController的结构。后来写着愈来愈科幻,在基于UINavigationController的view上,addSubview,结果add的view还要继续push,这时候已经没有UINavigationController了怎么办呢。好吧,我原来是直接搁全局变量的,没想到这个是能够直接拿到的,囧一个~
2.你能够直接使用AppDelegate声明的变量
拿到一个已经初始化好的类,里面的变量确定也能够直接调用喽,回到之前不一样view之间的变量传递话题,都有啥办法来着? app

给第二个类声明一个delegate;
另外实现一个单例;
经过消息通知;
经过文件交换;
经过NSUserDefaults;
经过全局变量;
经过变量绑定;
经过Block;

e,好吧,我记得早先讨论这个传值问题的时候,我只知道三种方法,如今随便一说就八种了,并且加上今天要说的这个就是九种了,再囧一个~
3.调用一些全局函数
不少时候,咱们一个方法,不只这个类里要用到,那个类里也要用到,为了实现方便调用和统一管理,咱们会把屡次用的类写到一个单例里面,固然这个时候在管理上仍是有一些混乱的:有的函数是公用的,放在哪一个应用里均可以用;有些函数是只有这个app才会用。因此如今你知道怎么把这些函数分开了吧?
ok,上面的用法很方便哈,可是总不能每次调用的时候,都写那么个变量出来吧,很长很urgy,确定要自定义一个宏了: 函数

#define sysDege (AppDelegate *)[[UIApplication sharedApplication] delegate]

这样之后想用的时候直接sysDege.xxx就行了。你还在纠结这个宏要每一个文件都定义?亲,没看过《关于-Prefix.pch文件的科幻用法》么?赶忙补课去吧。 学习

转载请注明: 转自Rainbird的我的博客
   本文连接: AppDelegate的科幻用法 spa

相关文章
相关标签/搜索