斯坦福iOS7公開課4-6筆記及演示Demo

    1.變量類型別濫用id,若是不仔細容易在程序執行時引起錯誤,由於在編譯階段編譯器只是檢測變量對象所屬類型,尤爲是類型爲id時表明任何類型均可以經過檢查,但不會檢測變量對象調用的方法,這樣當對象所屬類不包含所寫的調用方法時,編譯經過,但在程序運行時纔會報錯。安全

    2.簡單介紹了框架自帶的集合、字體等。微信

    3.經過使用NSAttributedString可讓屏幕顯示的字體樣式更豐富,設置各類樣式等,詳細參見附件的演示Demo:http://files.cnblogs.com/colinhou/Attributor.zipapp

    4.對於蘋果目前推薦的故事板Storyboard,介紹了其生命週期,並介紹了一些注意事項。框架

    (1)viewDidLoad,這一過程當中,故事板會作好初始化操做,咱們設置的各類輸出(IBOutlet)也已經初始化完畢,對於整個app須要且僅須要作一次初始化的操做,應該在這裏執行,由於viewDidLoad在整個生命週期只在程序開始時執行一次。可是須要注意,此時view並無顯示在屏幕上,也就是view的大小等信息都仍是不肯定的,因此不適合作與設置改變view大小尺寸的操做。測試

    (2)viewWillAppear,這一過程當中,view的幾何信息已經肯定,準備好要顯示了,若是還須要改變大小、動畫等,也能夠在這執行。同時一些初始化操做也應當在這裏執行,例如每次切換回來要更新數據等等,好比使用微信,每次從新從其餘地方切換過來的時候,頂部都會有一個圓圈在轉,表示正在獲取最新數據。字體

    (3)viewWillDisappear,表示view立刻要從屏幕消失,這時須要中止動畫等操做,避免佔用資源,同時若是也須要保存數據或狀態,這樣下次再切換回來的時候(viewWillAppear),方便繼續以前的操做或狀態。flex

    (4)viewDidAppear、viewDidDisappear在view已經出現或消失時觸發,動畫

            didReceiveMemoryWarning在系統內存不足時觸發,ui

            viewWill/DidLayoutSubviews用於屏幕旋轉作相應設置,後續會詳細介紹。spa

    5.廣播機制NSNotificationCenter,若是收聽了某一事件,當知足必定條件時,能夠作出響應,觸發指定操做,有點相似於flex的消息機制,監聽或取消監聽某一消息。

       addObserver表示收聽對象、觀察者,即誰監聽這一事件,selector表示響應方法,name即廣播名字,表示被收聽的事件,object表示這是誰的廣播、誰的事件,若是爲nil則表示不論是誰,只要這一廣播、事件發生了,都會收聽到,並做出相應操做。

        

    

     同時在中止收聽廣播的時候,必定要取消收聽,這是由於NSNotificationCenter使用了不安全引用指針「unsafe retained pointer」,若是沒有取消收聽,當收聽對象不存在了,通知NSNotificationCenter發送通知時就會引發程序崩潰,這裏原本應該使用weak類型的指針,這樣指針就可以自動變爲nil,可是爲了兼容iOS5(weak類型指針iOS6開始使用),目前仍是使用的「unsafe retained pointer」。

     另外,取消收聽時建議使用指明具體信息的方式,避免形成沒法使用其餘廣播。

   

  6.介紹了使用UINavigationController管理多個View的方式,詳細見附件的Demo:http://files.cnblogs.com/colinhou/Attributor.zip

     另外,若是想跳過其它view,直接對特定View進行簡單功能測試驗證時,能夠在Interface Builder中把起始箭頭移至目標View,在代碼中寫好測試方法,啓動調試後就能直接進入目標View驗證功能了。

    Demo效果截圖:

      

相關文章
相關標籤/搜索