我對Objective-C和可可編程相當陌生,所以我不太瞭解App Delegates的概念。應用程序委託用法
當我們創建一個Cocoa應用程序,我們做我們的存儲在App委託文件中的代碼(方法,措施,網點)還是我們創建一個新的文件,該文件將作爲從那裏控制器和代碼。現在,我將所有代碼都放在這兩個文件中,但是從我閱讀的內容來看,您的目標是儘可能使您的App Delegate文件儘可能瘦。
我的問題是:什麼是應用程序委託文件的用法?
我對Objective-C和可可編程相當陌生,所以我不太瞭解App Delegates的概念。應用程序委託用法
當我們創建一個Cocoa應用程序,我們做我們的存儲在App委託文件中的代碼(方法,措施,網點)還是我們創建一個新的文件,該文件將作爲從那裏控制器和代碼。現在,我將所有代碼都放在這兩個文件中,但是從我閱讀的內容來看,您的目標是儘可能使您的App Delegate文件儘可能瘦。
我的問題是:什麼是應用程序委託文件的用法?
談到applicationDidFinishLaunching:
: 這只是你的應用程序入口點。通常,您只能在此創建窗口和第一個ViewController,或者您的Tabbar(您的主要起始界面類)。
所有的NSApplicationDelegate
其他委託方法當然有其他的功能。他們中的大多數都是關鍵點,你對應用的狀態做出反應。打開/關閉/轉到後臺/重開等
但你應該看看iPhone的文檔中的編程教程。關於如何構建objc項目有很多信息。例如。看看這裏:Start Developing iOS Apps Today
或者如果您尋找OSX應用程序,看看這裏:
1)Your First Mac App
2)Mac App Programming Guide
還有一堆Sample code。
應用程序委託是用於處理應用程序中發生的事件的處理程序位置。像打開和關閉的東西。它也掛起整個應用程序正在執行的時間,你可以在任何時候通過執行[[NSApplication sharedApplication] delegate]
來獲取單例實例。
這是在方便的控制器之間移交對象,並作爲事件的路由器。如果您需要在代碼的不同部分修改/訪問代理,您還可以在代理上存儲一些數據。
這對所有簡單的應用程序都適用,但隨着事情變得更加複雜,您需要進行一些職責分工。 AppDelegate應該只負責應用程序本身發生的操作,而不是另一個視圖或控制器。將所有/大部分代碼放入AppDeligate當然是不好的做法,並且會導致可怕的代碼,因爲事情變得更復雜並且需要維護。
感謝您幫助我解決問題:) – Cubia 2012-03-29 21:50:36
你有任何文檔的桌面應用程序(不iphone)? – Cubia 2012-03-29 21:52:00
更新了我的答案。 – calimarkus 2012-03-29 22:23:35
非常感謝。非常感激! – Cubia 2012-03-30 01:46:18