我正在研究Xamarin應用程序,我將首先在iOS上工作,但計劃稍後擴展到Android和其他移動平臺。在Xamarin.iOS應用程序中初始化PCL實例的位置?
因此,我試圖儘可能多地在PCL中保留通用代碼。
我的問題:現在最好的做法 - 在Xamarin.iOS中 - 初始化任何從屬PCL代碼?
現在我把它在裏面RootViewController
ViewDidLoad()
public override void ViewDidLoad()
{
base.ViewDidLoad();
_engine = new MyEngine();
View = new MainView(_engine);
}
這是正確的位置?我曾考慮將它放在RootViewController
的ctor中,但是在初始化代碼中有一點點,因此它違背了「不要將重型init代碼放入構造函數中」。
發生的事情是:
- 加載應用程序設置
- 如果應用程序是運行第一次,負荷基本默認
- 初始化其他PCL庫,如文字轉語音模塊,狀態引擎(因此類的名稱以上)等
- 準備基於XML或JSON輸入數據網格
鋁在我看來,雖然它可能會進入AppDelegate
部分,但這聽起來不對。
對於移動應用程序開發人員和特定的Xamarin來說,我還是比較新的,儘管我已經爲Windows做了多年的C#本機代碼。我只是想確保我遵循最佳做法,但在這種情況下似乎並沒有什麼「必然」。
編輯:我已經根據@ wishmaster的建議提取了解決方案。
非常好。我可以看到,我不得不進一步深入閱讀Swift和Obj-C的基礎知識。來自C#我天真地希望我能堅持到Xamarin文檔的小島。並非如此。您鏈接的文檔解釋了應用程序啓動的一些細節,正是我所期待的。 – Marakai
在Xamarin中,didFinishLaunchingWithOptions()方法是FinishedLaunching() - 而且文檔並不深入。 – Marakai
你讓我走在正確的軌道上,它像一個魅力!我會編輯我的問題,並將解決方案放入單獨的答案中,但您仍然可以獲得接受的答案。 – Marakai