2013-11-04 20 views
0

我正在學習CoreData。我有一個簡單的程序,將文件加載到NSMutableArray,在NSMutableArray中插入項目,顯示數據以及關閉應用程序時保存到文件。 我想更改我的應用程序以使用coreData。 我認爲有這樣做雙向的:使用NSArrays/NSMutableArrays並僅保存在coreData或CorData中?

  1. 繼續使用NSMutableArray並使用CoreData加載和保存項目。
  2. 忘記NSArray只與CoreData

什麼是最好的方式工作?只有coreData或使用NSArrays然後保存到CoreData?這款應用在特定和未來的應用中的最佳做法是什麼?

謝謝你的幫助。

+1

你不能真的「只使用CoreData」。核心數據是用於在iOS中保存數據的框架。如果你想顯示這些數據,你仍然需要將它從Core Data中提取出來並放入可以像NSArray一樣顯示的東西。你可能會更好地看待這樣的http://www.raywenderlich.com/934/core-data-tutorial-for-ios-getting-started這是一個很好的介紹核心數據,並會回答這個問題。 – Fogmeister

+0

我認爲核心數據有很多開銷 - NSArray是基於ram的,但cd更多的時候是基於磁盤的,所以你會因爲cd而失去速度。但是,在收集和組織數據時它更加靈活。我認爲在plist中存儲數組只能達到一定的內存大小(...?),所以你可能沒有多少選擇。但是你可以對數組進行序列化並使用標準NSFileManager來將原始數據保存到磁盤。就我個人而言,我甚至可以使用CD獲得超過10張唱片的紀錄,我認爲這絕對是更有前途的證據。 – Todd

+0

@託德 - 一般而言,沒有什麼是未來的證據;也沒有什麼更「必要」的未來證明。這一切都取決於你的問題,你的約束,什麼改變等。 – occulus

回答

1

您可以使用Core Data來將數據保存到磁盤。不過,您會放棄很多便利,例如NSFetchedResultsController

尤其是當您有大量數據時,您的對象在內存中的完整陣列可能很快就會過多,無法處理設備。核心數據包含一系列經過測試和成熟的技術,可幫助您保持對象圖的完整性,以最小的努力管理內存和性能。

相關問題