2014-01-23 53 views
-1

我的問題是基於這樣一個事實,即可能有多個小型項目,然後想要將它們集成到一個更大的項目中,以提高編碼效率。沒有應用程序委託可以工作嗎?

我看到了多個項目,根本沒有使用App Delegate,我認爲Adium項目就是其中之一。過去我也有幾次能夠重新創建它,現在我不記得如何。

我想一個基本的NSObject繼承類將適合,加上它的實例化和連接。

問題是,是否可以在沒有App Delegate的情況下工作(或者有解決方法)?

+0

你的意思是根本沒有AppDelegate或只是不向AppDelegate添加額外的代碼? – Fogmeister

+0

我的意思是在AppDelegate中沒有額外的代碼 –

回答

3

如果您想實施NSApplicationDelegate協議中聲明的某些方法來響應某些應用程序生命週期事件,則需要應用程序委託。如果您不需要實現其中的任何一種,則不需要應用程序委託。一些委託方法也有通知選擇。

+0

什麼屬於應用程序生命週期事件?顯示一個窗口並使元素相互影響? –

+0

查看我鏈接的文檔。該協議中的所有內容都必須在應用程序委託中實現。請注意,這個對象可以是任何東西。它只是一個協議(也就是其他語言的接口)。 – DrummerB

+0

我試了一下,得到了一個基本的設置,我沒有使用應用程序委託,但在對象中實例化類作爲'準委託',但類的代碼不能運行(斷點檢查)...什麼可能我現在做的? –

2

OK,從您的評論...

I mean having no additional code in AppDelegate 

然後是。

這不僅是可能的,它是建議。正是因爲你說過的原因。

應用程序代表作爲應用程序和操作系統之間的通信層。即「應用程序已經啓動」,「應用程序即將關閉」,「應用程序剛剛收到通知」等等。

所有這些都是應用程序委託的目的。

你的應用程序的邏輯不應該去你的應用程序代表附近的任何地方。就像您所說的,您的應用中可能會有不同的應用或不同的目標,它們使用不同的應用代理。

如果您有代碼,那麼您將不得不將其複製到每個副本。

也有很多其他的原因。

這裏是一個快速鏈接... http://www.hollance.com/2012/02/dont-abuse-the-app-delegate/

有關於不使用的應用程序委託其他許多人。

+0

我同意,由於很多原因,它是非常重要和重要的,我也閱讀了該資源。現在我需要弄清楚的是如何使任何代碼可執行,因爲我嘗試了沒有AppDelegate設置和通過斷點,我發現我的代碼沒有運行。 –

+0

請注意,一個非常非常基本的設置就足以說明它是如何工作的。接受你的答案,我們正在接近這裏的解決方案!謝謝@Fogmeister。 –

相關問題