我正在設計一個相當大的應用程序,在啓動時它將創建與幾個不同的服務器的會話。當他們創建一個在應用程序的所有部分中使用的會話時,我認爲它在App Delegate中是最好的。AppDelegate應該做多少?
但問題是我需要在屏幕上表示會話進度。我計劃在主菜單的底部有一個UIToolBar,我不想用進度條來覆蓋它,但是覆蓋了它上面的UIView。所以我看到它的方式可以通過幾種不同的方法來實現。
1)讓App Delegate建立會話並將進度報告給主菜單類,以便它可以在進度條中表示它(如果會話是在單獨的線程中創建的,那麼我會遇到任何問題嗎?) ,
2)有應用程序委託顯示主菜單(UIView與一堆按鈕和UIToolBar),並跟蹤並顯示進度(我從來沒有在應用程序委託中顯示任何東西,但假設你可以做到這一點,但它不推薦)或
3)有App Delegate只需推動主菜單,並讓mainMenu類創建會話並顯示進度條。
4)我認爲另一種方法是在委託類中創建會話,並將委託設置爲mainMenu而不是self(AppDelegate),儘管我從未使用過除self之外的其他任何東西,所以不確定如果這可以工作,或者如果我能夠關閉線程(通過調用super也許?)作爲它在AppDelegate中的運行而不是該類的委託。
正如我之前所說的在一個單獨的線程中創建一個類中的會話,所以它不會鎖定用戶界面,我認爲最好的方法是第一個但我會遇到問題讓它運行在單獨的線程,回報應用程序委託,然後將該消息發送到mainMenu視圖?
我希望大家都有道理,讓我知道你是否需要進一步澄清。任何信息表示讚賞
乾杯,
道歉,如果我想念你寫的東西,但你說像一個單身人士作爲連接管理器啓動會話? – Rudiger 2010-05-19 01:08:32
我只是說它會像單身人士一樣在返回一個指向它自身之前檢查它是否存在。在這種情況下,它會檢查連接的狀態,並可能在將連接的句柄返回給程序的其他部分使用之前啓動連接。通過抽象連接狀態和過程,你可以使自己更容易,並提供方便的功能,如「關閉所有連接」。 – 2010-05-19 01:24:01
嗯,有趣。我想你是對的。我會去設計它,看看是否遇到任何問題。可能看看別人是否考慮到了這個問題 – Rudiger 2010-05-19 01:38:36