1.變量類型別濫用id,如果不仔細(xì)容易在程序執(zhí)行時引發(fā)錯誤,因?yàn)樵诰幾g階段編譯器只是檢測變量對象所屬類型,尤其是類型為id時代表任何類型都可以通過檢查,但不會檢測變量對象調(diào)用的方法,這樣當(dāng)對象所屬類不包含所寫的調(diào)用方法時,編譯通過,但在程序運(yùn)行時才會報錯。
2.簡單介紹了框架自帶的集合、字體等。
3.通過使用NSAttributedString可以讓屏幕顯示的字體樣式更豐富,設(shè)置各種樣式等,詳細(xì)參見附件的演示Demo:http://files.VEVb.com/colinhou/Attributor.zip
4.對于蘋果目前推薦的故事板Storyboard,介紹了其生命周期,并介紹了一些注意事項(xiàng)。
(1)viewDidLoad,這一過程中,故事板會做好初始化操作,我們設(shè)置的各種輸出(IBOutlet)也已經(jīng)初始化完畢,對于整個app需要且僅需要做一次初始化的操作,應(yīng)該在這里執(zhí)行,因?yàn)関iewDidLoad在整個生命周期只在程序開始時執(zhí)行一次。但是需要注意,此時view并沒有顯示在屏幕上,也就是view的大小等信息都還是不確定的,所以不適合做與設(shè)置改變view大小尺寸的操作。
(2)viewWillAppear,這一過程中,view的幾何信息已經(jīng)確定,準(zhǔn)備好要顯示了,如果還需要改變大小、動畫等,也可以在這執(zhí)行。同時一些初始化操作也應(yīng)當(dāng)在這里執(zhí)行,例如每次切換回來要更新數(shù)據(jù)等等,比如使用微信,每次重新從其他地方切換過來的時候,頂部都會有一個圓圈在轉(zhuǎn),表示正在獲取最新數(shù)據(jù)。
(3)viewWillDisappear,表示view馬上要從屏幕消失,這時需要停止動畫等操作,避免占用資源,同時如果也需要保存數(shù)據(jù)或狀態(tài),這樣下次再切換回來的時候(viewWillAppear),方便繼續(xù)之前的操作或狀態(tài)。
(4)viewDidAppear、viewDidDisappear在view已經(jīng)出現(xiàn)或消失時觸發(fā),
didReceiveMemoryWarning在系統(tǒng)內(nèi)存不足時觸發(fā),
viewWill/DidLayoutSubviews用于屏幕旋轉(zhuǎn)做相應(yīng)設(shè)置,后續(xù)會詳細(xì)介紹。
5.廣播機(jī)制NSNotificationCenter,如果收聽了某一事件,當(dāng)滿足一定條件時,可以做出響應(yīng),觸發(fā)指定操作,有點(diǎn)類似于flex的消息機(jī)制,監(jiān)聽或取消監(jiān)聽某一消息。
addObserver表示收聽對象、觀察者,即誰監(jiān)聽這一事件,selector表示響應(yīng)方法,name即廣播名字,表示被收聽的事件,object表示這是誰的廣播、誰的事件,如果為nil則表示不管是誰,只要這一廣播、事件發(fā)生了,都會收聽到,并作出相應(yīng)操作。
同時在停止收聽廣播的時候,一定要取消收聽,這是因?yàn)镹SNotificationCenter使用了不安全引用指針“unsafe retained pointer”,如果沒有取消收聽,當(dāng)收聽對象不存在了,通知NSNotificationCenter發(fā)送通知時就會引起程序崩潰,這里本來應(yīng)該使用weak類型的指針,這樣指針就能夠自動變?yōu)閚il,但是為了兼容iOS5(weak類型指針iOS6開始使用),目前還是使用的“unsafe retained pointer”。
另外,取消收聽時建議使用指明具體信息的方式,避免造成無法使用其他廣播。
6.介紹了使用UINavigationController管理多個View的方式,詳細(xì)見附件的Demo:http://files.VEVb.com/colinhou/Attributor.zip
另外,如果想跳過其它view,直接對特定View進(jìn)行簡單功能測試驗(yàn)證時,可以在Interface Builder中把起始箭頭移至目標(biāo)View,在代碼中寫好測試方法,啟動調(diào)試后就能直接進(jìn)入目標(biāo)View驗(yàn)證功能了。
Demo效果截圖:
新聞熱點(diǎn)
疑難解答
圖片精選