2010-09-09 61 views
2

我期待到存儲大量數爲Int16的。考慮核心數據是因爲其餘模型都是在覈心數據中實現的。核心數據文件的大小

所以我做了一個簡單的應用程序。具有1個實體和1個Int16類型屬性的核心數據。在SQLite存儲類型中插入了100萬個條目,文件大小爲16.2MB。其實如果我改成Int64,我會得到相同的文件大小。如果編寫簡單的二進制C數組,應該在2MB左右。

那麼問題是,爲什麼核心數據有這麼多不同類型的數字格式的麻煩,如果一切無論如何都會被強制轉換爲NSNumber的?有什麼辦法讓核心數據存儲數據爲真Int16?或用C表示short

謝謝。

+0

請記住核心數據被存儲不僅僅是原始數據多。它需要維護他們周圍的其餘數據庫結構。 – 2010-09-09 17:13:17

回答

4

只是因爲核心數據支持所有這些數字格式並不意味着底層的存儲引擎有將它們存儲在不同的方式。如果您嘗試使用二進制商店,您可能會得到不同的文件大小。

用於存儲許多整數,我會把它們放在一個NSData對象,其存儲在覈心數據。

+0

這是一個好主意!現在的數據文件只有2.1MB。只有100KB的開銷,非常值得它的方便。 – Dan 2010-09-10 20:36:43