由於CoreData已經可用於OS 3.0中的iPhone,它是否意味着數據持久化的答案並取代所有直接需要的SQLite
?在iPhone上使用CoreData或SQLite?
還有什麼理由仍然使用SQLite
? SQLite
與CoreData
有什麼優點/缺點?
由於CoreData已經可用於OS 3.0中的iPhone,它是否意味着數據持久化的答案並取代所有直接需要的SQLite
?在iPhone上使用CoreData或SQLite?
還有什麼理由仍然使用SQLite
? SQLite
與CoreData
有什麼優點/缺點?
這是這裏一個共同的問題:
總之,核心數據可以極大地簡化代碼,特別是對於複雜對象模型。你幾乎可以免費獲得撤銷/重做支持。它還提供了一些非常重要的performance benefits,特別是在iPhone上。儘管看起來有點違反直覺,但考慮到框架有多少開銷,在大多數情況下,您可以使用Core Data打敗手動調整的SQLite的性能。在iPhone上,它在批量提取方面做得非常出色,可以最大限度地減少內存使用量。
正如指出的那樣,其中一個缺點是,這會限制您爲最終用戶提供iPhone OS 3.0。但是,這對我的用戶來說並不是什麼問題,並且今後只會減少一個問題。
如果您希望您的應用程序在未運行OS 3.0的iPhone上運行,則必須使用SQLite。但是,使用CoreData(它使用SQLite作爲後端,我相信)意味着你不必編寫自己的數據庫交互代碼,這是非常麻煩的事,特別是當你正在進行關係等時。
我使用CoreData自己...
這可能是一個小的好處,但SQLite是平臺之間有很多更便攜,因爲核心數據是可可的一部分,和SQLite是純C.這意味着,如果你例如,想要將應用程序移植到PC上,例如,如果使用純SQLite,則重寫代碼的代碼會更少。
然後,如果您想使用本地數據庫(不一定與任何iPhone應用程序相關)開發任何其他跨平臺的平臺,那麼您將擁有SQLite的一些經驗。
這就是我喜歡它的地方......我有一個iPhone應用程序,我正轉向Android,數據結構是我不必擔心的一件事。 – AndyD273 2010-07-29 14:05:48
奇怪的是,這些沒有在我的搜索中彈出。也許我對「coredata」的搜索有所不同。這篇文章是否應該刪除? – Hauke 2009-08-24 08:12:39