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

相關文章
相關標籤/搜索