1
我們知道靜態和單一的辯論,所以這個問題不是關於static關鍵字的合法性。Monotouch中的靜態和內存管理
當你有一個靜態類時,Monotouch處理的內存如何。當收到內存警告時是否刪除了其成員?有沒有關於在Monotouch中使用靜態類的指導原則?
我們知道靜態和單一的辯論,所以這個問題不是關於static關鍵字的合法性。Monotouch中的靜態和內存管理
當你有一個靜態類時,Monotouch處理的內存如何。當收到內存警告時是否刪除了其成員?有沒有關於在Monotouch中使用靜態類的指導原則?
靜態類和成員將在應用程序的整個生命週期中停留。
通常我不會擔心靜態類。最大的擔心是確保您正在清理所有控制器中的ViewDidUnload
。
在這裏,你應該:
ReleaseDesignerOutlets
將在MonoTouch的更高版本做到這一點),你必須做你自己從代碼ViewDidLoad
創建的UIImage,UIFont等的任何實例ViewDidUnload
應的ViewDidLoad
ViewDidUnload
被稱爲低內存條件控制器當前未在屏幕上,如那些倒在UINavigationControllers
棧等
此外,你可能想在任何掛接到低內存通知從UINotificationCenter
幫助類緩存UIImage,UIFont等
釋放視圖和圖像將釋放更多的內存,你會得到多少內存靜態類正在使用。
好東西。考慮靜態拋棄實例對象(即每次調用靜態類時創建和銷燬資源)。 – bytefire
@jonathanpeppers僅供參考:iOS的未來版本可能不再調用ViewDidUnload和ViewWillUnload ...您可能需要檢出最新的WWDC視頻。 – Krumelur
這通常會影響MonoTouch,'ReleaseDesignerOutlets'由MonoDevelop生成。你有鏈接到這些視頻之一嗎? – jonathanpeppers