1.變量類型別濫用id,如果不仔細容易在程序執行時引發錯誤,因為在編譯階段編譯器只是檢測變量對象所屬類型,尤其是類型為id時代表任何類型都可以通過檢查,但不會檢測變量對象調用的方法,這樣當對象所屬類不包含所寫的調用方法時,編譯通過,但在程序運行時才會報錯。
2.簡單介紹了框架自帶的集合、字體等。
3.通過使用NSAttributedString可以讓屏幕顯示的字體樣式更豐富,設置各種樣式等,詳細參見附件的演示Demo:http://files.VEVb.com/colinhou/Attributor.zip
4.對于蘋果目前推薦的故事板Storyboard,介紹了其生命周期,并介紹了一些注意事項。
(1)viewDidLoad,這一過程中,故事板會做好初始化操作,我們設置的各種輸出(IBOutlet)也已經初始化完畢,對于整個app需要且僅需要做一次初始化的操作,應該在這里執行,因為viewDidLoad在整個生命周期只在程序開始時執行一次。但是需要注意,此時view并沒有顯示在屏幕上,也就是view的大小等信息都還是不確定的,所以不適合做與設置改變view大小尺寸的操作。
(2)viewWillAppear,這一過程中,view的幾何信息已經確定,準備好要顯示了,如果還需要改變大小、動畫等,也可以在這執行。同時一些初始化操作也應當在這里執行,例如每次切換回來要更新數據等等,比如使用微信,每次重新從其他地方切換過來的時候,頂部都會有一個圓圈在轉,表示正在獲取最新數據。
(3)viewWillDisappear,表示view馬上要從屏幕消失,這時需要停止動畫等操作,避免占用資源,同時如果也需要保存數據或狀態,這樣下次再切換回來的時候(viewWillAppear),方便繼續之前的操作或狀態。
(4)viewDidAppear、viewDidDisappear在view已經出現或消失時觸發,
didReceiveMemoryWarning在系統內存不足時觸發,
viewWill/DidLayoutSubviews用于屏幕旋轉做相應設置,后續會詳細介紹。
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.VEVb.com/colinhou/Attributor.zip
另外,如果想跳過其它view,直接對特定View進行簡單功能測試驗證時,可以在Interface Builder中把起始箭頭移至目標View,在代碼中寫好測試方法,啟動調試后就能直接進入目標View驗證功能了。
Demo效果截圖:
新聞熱點
疑難解答