2017-07-20 90 views
0

我必須設計一款應用程序,隨着時間的推移,它將支持越來越多的數據。Swift - 核心數據容量

例如,假設我有這樣的數據模型。

class obj{ 
    let data1: String 
    let data2: String 
    init(data1: String, data2: String){ 
    self.data1 = data1 
    self.data2 = data2 
    } 
} 

而且我每天都必須保存新的obj。 在這種情況下,是採用核心數據的智能方式來保存數據? 或者準備好像sql這樣的數據庫並保存數據會更好嗎? 我擔心的是,使用的應用程序一段時間,因爲數據的總尺寸變末過大後應用無法處理這麼多的數據...

對不起,我沒有深刻的認識中的核心數據&數據庫。 我很感謝大家提前與我分享一些知識。 謝謝

回答

2

在大多數情況下,人們使用Core Data和SQLite後備存儲。這不像使用SQLite,但它是相關的,因爲你對內存使用有類似的好處。

除非將模型對象的批次加載到內存中,否則不會使用過多內存。對於像你這樣的例子來說,這將是一個非常大的對象。但更典型的是,你使用核心數據來只加載總數的一個子集。例如,data1具有特定字符串值的每個對象(例如)或最近的20個對象。 「太大」通常不是問題。如果你將大量的對象加載到內存中,無論你使用的是核心數據,你都會遇到問題。

+0

我明白了。你是對的,該應用程序不會每次使用/加載所有的數據。就像你說的,最有可能10〜20。 但是讓我確認一下,如果我能正確地找到你的話......例如,iOS日曆應用可以讓用戶保存儘可能多的事件。雖然這些事件可能不會同時被查看,但所有的數據實際上都保存在手機中,這意味着我們繼續使用時會消耗更多的內存。但是你所說的是我不必擔心這種內存管理,除非它們在同一時間加載? –

+0

小心不要將內存與存儲空間混淆。任何應用程序都使用足夠的存儲空間來保存所有數據。但除非一次加載所有數據,否則不會佔用太多內存。 –

+0

ohh好吧。是的,我很困惑。謝謝! –