這是一個非常典型的場景,但我想知道最佳方法是什麼。iOS web api數據管理(singleton?)
假設我需要構建一個與REST API交互的應用程序。然後,來自Web服務器的數據在整個應用程序中以多種方式顯示。
通常,我處理這個問題的方式是讓一個單例處理所有的數據操作(從服務器獲取/存儲/存儲數據到內存中,然後當我想在tableview中顯示這些數據時因此,基本上
每當應用程序的一些部分需要通過訪問單訪問它這樣做數據
;,我會直接在數據源的方法訪問此單例如[[MyApi sharedInstance] arrayOfCustomObjects]。這是一個很好的方法去解決這個問題嗎?有沒有其他模式可能更有用?
另一種方法是,不是將數據存儲在單例中,而是讓每個控制器都擁有實例變量來存儲它們所需的數據,然後使用單例只從服務器獲取數據,但自己存儲數據。這裏的問題是,如果控制器被過早解僱,那麼這個實例變量消失,服務器訪問被浪費(但這也許是件好事?)。
最後,當你堅持不懈地投入混合時,最好的策略是什麼?我想像有CoreData坐在網絡電話之間,其餘的應用程序將是一個很好的方法?
我想這裏真正的問題是什麼是管理來自服務器的數據的最佳方法,應該可能會被持續?
感謝您的詳細回覆。你對RestKit有什麼經驗?我只是最近才聽到它,我想盡量減少第三方代碼的依賴。我發現它只在版本0.20。你覺得它有充分的文件記錄,支持好,穩定等?你有沒有遇到任何問題,讓你後悔在項目中使用它?謝謝! – nebs
RestKit 0.20效果很好,並且非常一致。由於上一次版本升級引起的巨大變化,文檔中出現了一些問題,這些問題有時會過時。在第一次使用它時,我有些難以理解它的某些「自動」行爲,但我在幾天內完全理解了我需要的一切,從而達到了穩定的項目設置。另外,我不得不說,開發人員非常活躍,他很快回應了GitHub上的大部分問題,這絕對是一個專業人士。 –