2010年3月25日 星期四

iPhone 開發技巧(4) 通知追蹤

我們平常對於iPhone App的開發,都是著重在MVC或商業邏輯上,當然大家一定會有自己的一套除錯方式,或是利用Performance Tool等來進行調效,不過這裡Sam想和大家說一下通知追蹤。

iPhone應用程式中的互動可分為三大類:Delegate(委派)、Target-Action(目標-動作)及Notification(通知)。

Delegate(委派)的作用方式可將它想像成使用者告知A去做事,而A事先把這份責任委派給B,因此,A在接收到做事指令後會直接轉交B來執行(聽起來有點類似推卸責任...雖然最後還是會把事情做完...)。

2010年3月24日 星期三

iPhone 開發技巧(3) 不用NIB(XIB)產生應用程式

延續技巧(2)的結論,Sam覺得還是示範一下怎麼樣不用NIB(XIB)來產生應用程式。
首先,新建一個Window-based Application的Project,然後你會在左方看到如下圖所示的檔案清單。

2010年3月19日 星期五

iPhone 開發技巧(2) 要不要使用NIB(XIB)?

我們在開發應用程式的時候都會使用InterfaceBuilder的視覺化界面來配製NIB(XIB)內的元件,這樣的確是比較省事,不過說穿了,NIB(XIB)在編譯的時候一樣是去產生一堆code。如果想知道你的NIB(XIB)到底在幹嘛,Adrian Kosmaczewski這位仁兄寫了一套轉換模組nib2objc,可以拿來玩看看。
一般開發者總是會認為從頭到尾都用code去產生的效能會最好,事實上這個觀念也沒有錯,Matt Gallagher 針對 UITableView 的顯示進行了比較,一方是由InterfaceBuilder產生,另一方用code來建立視圖。

2010年3月9日 星期二

iPhone 開發技巧(1) release 的使用

一般而言,iPhone開發的時候要自己管理記憶體,雖然可以使用autorelease pool來讓Objective-C自動回收,但大多數的程式設計師還是喜歡自己掌控變數的生死,因此就會使用到大量的release方法。
例如:
NSMutableArray *array = [[NSMutableArray alloc] initWithObjects:@"A", @"B", @"C", nil];
[array release];