2011年2月6日 星期日

Stanford iphone Lecture 6 in 2010 Fall

生命週期...
想不到才第六節課~
怎麼有很多東西的感覺XD
這節課主要在Demo~所以東西比較少,但很實用。







  1. 當我們建立一個View-based Application,XCode會根據 code template自動產生一些檔案:
  • main.m: 標準的進入點。呼叫UIApplication來開始App。
  • MainWindow.xib:  建立最上層的UIWindow
  • -Info.plist: 一些可調屬性。
  • didFinishLaunchingWithOptions: 這個function是在當一切都準備好了,程式可以運作後會呼叫的函式。若要額外做些什麼事情可以在這裡做。
  • 只有在Frame形狀改變時,他才會自動updateUI,否則我們需要送setNeedsDisplay告訴App我們要updateUI。
  • Release和retain和autorelease的狀態有時候很難搞懂。故有時候會進入到一種沒人能access的狀態。這時最好的方法就是把所有的retain和release都註解掉,再一一加回去。慢慢搞懂他是怎麼做的。
  • 在UIViewController裡面,設置view的property是很重要的。他透過loadView來實現。loadView是當xib file沒找到時會呼叫的事情。千萬不要又設定xib file又loadView這樣會出錯。
  • 當一切都做好了、view也呈現了。viewDidLoad會被呼叫。而這是一個好時機去做一些事情的時候。這個function只會呼叫一次。所以一些配置應該在這裡做。而不要在viewWillAppear做。太耗費資源了。
  • 而viewWillAppear是frame大小、view大小都已經配置妥當了。所以一切大小都已得知。但是這個可能會被呼叫很多次,因為他可能會被控制消失再出現。所以會出現很多次。
  1.  Controller of Controllers
  • UINavigationController: 
    • 沒有xib file。因為他將由其他的MVC所繪製。
  • UITabBarController:

沒有留言:

張貼留言