2012-03-29 71 views
0

我對Objective-C和可可編程相當陌生,所以我不太瞭解App Delegates的概念。應用程序委託用法

當我們創建一個Cocoa應用程序,我們做我們的存儲在App委託文件中的代碼(方法,措施,網點)還是我們創建一個新的文件,該文件將作爲從那裏控制器和代碼。現在,我將所有代碼都放在這兩個文件中,但是從我閱讀的內容來看,您的目標是儘可能使您的App Delegate文件儘可能瘦。

我的問題是:什麼是應用程序委託文件的用法?

回答

2

談到applicationDidFinishLaunching:: 這只是你的應用程序入口點。通常,您只能在此創建窗口和第一個ViewController,或者您的Tabbar(您的主要起始界面類)。

所有的NSApplicationDelegate其他委託方法當然有其他的功能。他們中的大多數都是關鍵點,你對應用的狀態做出反應。打開/關閉/轉到後臺/重開等

但你應該看看iPhone的文檔中的編程教程。關於如何構建objc項目有很多信息。例如。看看這裏:Start Developing iOS Apps Today

或者如果您尋找OSX應用程序,看看這裏:

1)Your First Mac App
2)Mac App Programming Guide

還有一堆Sample code

+0

你有任何文檔的桌面應用程序(不iphone)? – Cubia 2012-03-29 21:52:00

+0

更新了我的答案。 – calimarkus 2012-03-29 22:23:35

+0

非常感謝。非常感激! – Cubia 2012-03-30 01:46:18

1

應用程序委託是用於處理應用程序中發生的事件的處理程序位置。像打開和關閉的東西。它也掛起整個應用程序正在執行的時間,你可以在任何時候通過執行[[NSApplication sharedApplication] delegate]來獲取單例實例。

這是在方便的控制器之間移交對象,並作爲事件的路由器。如果您需要在代碼的不同部分修改/訪問代理,您還可以在代理上存儲一些數據。

這對所有簡單的應用程序都適用,但隨着事情變得更加複雜,您需要進行一些職責分工。 AppDelegate應該只負責應用程序本身發生的操作,而不是另一個視圖或控制器。將所有/大部分代碼放入AppDeligate當然是不好的做法,並且會導致可怕的代碼,因爲事情變得更復雜並且需要維護。

+0

感謝您幫助我解決問題:) – Cubia 2012-03-29 21:50:36

相關問題