2011-11-03 72 views
0

我正在使用Xcode 4.1,升級到4.2後,事情開始變得過時。我使用了很多來自不同書籍的例子,例如Big Nerd Ranch Guides,它們不使用Storyboard並且基於Windows的應用程序已被更改爲「Empty」應用程序。我應該將我的大部分代碼寫入控制器還是代理?

隨着這些新的變化,我覺得我曾經使用的書籍和教程已經過時。在這些例子中的許多例子中,他們說要在4.1的委託頭文件中寫入方法和變量。使用新的4.2 Xcode,有一個AppDelegate和ViewController。我仍然應該在AppDelegate中編寫方法和類成員,還是現在應該將它們寫入Controller文件?

我很困惑。蘋果現在是否希望我們創建我們的控制器並通過委託來引用它?

回答

1

當您的應用程序運行時,它會創建一個UIApplication的實例。你想知道只有UIApplication對象知道的事情(我們是否切換到背景?我們剛打開?),所以你使用委託模式來獲得它。當您開始一個新項目時,Apple會使用已分配的App Delegate啓動您。您可以打開MainWindow.nib並檢查您的App Delegate,看看它是如何連接到您的UIApplication實例(在這種情況下是File's Owner)。

一般而言,您只想將代碼放在那裏,與您的應用程序的基本功能有關。啓動,退出,進入後臺,進入前臺時,您將在App Delegate中進行操作。

其他所有事情都應該放在您的視圖控制器或模型對象中。由於'委託'只是一種設計模式,因此您的視圖控制器可以是其他對象的委託。例如,如果您提供了UITableView,您將在委託時分配視圖控制器以響應選擇和滾動等事件。你的應用有很多代表,但它只有一個App Delegate。

0

AppDelegate真的只是您的應用程序的「啓動器」。即:你根本不應該寫很多代碼。

如果您關心的是「設置」代碼,請在您的視圖控制器中的viewDidLoad下執行。

相關問題