2010-02-19 72 views
3

我正在創建一個iPhone應用程序,我試圖在持久存儲的兩種解決方案之間進行選擇。核心數據與SQLitePersistentObjects

核心數據或SQLitePersistentObjects。基本上,我所有的應用程序都需要存儲一個模型對象數組,然後再次加載它們以顯示在UITableView中。它沒有太複雜。核心數據似乎比簡單使用SQLitePersistentObjects有更高的學習曲線。在我的情況下,使用Core Data over SQLitePersistentObjects有什麼明顯的好處?

回答

1

看到這個問題。我對這個問題的回答也適用於你的問題。

Core Data VS SQL Statement, which one is gd for iphone development?

+0

它並不是因爲SQLitePersistentObjects是一個ORM。 –

+0

這是因爲你應該爲此使用Apple技術,這就是他們編寫Core Data的原因。 OP有時間研究核心數據並理解技術是值得的。 –

+1

你的答案使用裸SQLite來比較使用核心數據。這是一個不正確的比較。 SQLPO!=裸露的SQLite。我同意研究核心數據是好的,但替代方案不應該被忽略。核心數據是蘋果API設計黑暗時刻的一個例子。將它與Rails和其他漂亮的ORM中的ActiveRecord進行比較... –

0

最近,我不得不做出同樣的決定。我用一些屬性來存儲一個簡單對象的實例。從我的研究中,我明白使用核心數據將幫助您更好地管理具有多種關係的更復雜的對象。我最終只使用了Core Data,因爲我想了解更多關於它的知識(但對於簡單的對象來說,並沒有太多的學習曲線)。

0

SQLitePersistentObjects aka SQLLite持久對象與直接SQLite完全不一樣。它本身就是一個ORM。我還沒有使用它,但我想糾正上一張海報給出的完全錯誤的答案。

我正在認真考慮使用,因爲核心數據是一個痛苦。

請參見:http://iphonedevelopment.blogspot.com/2008/08/sqlite-persistent-objects.html

+0

以前的答案?現在,你上面的人是編寫SQLPO的人,我懷疑你是誰的意思,更可能是因爲重新排列了答案。你能指定嗎? –

+0

根據我一定提到Marcus S. Zarra的答案的日期。我意識到,使用核心數據是福音,但它仍然充滿了錯誤和煩人的事情,任何人使用,例如,ActiveRecord會討厭。沒有人想聽到這個,但被警告。 –

13

由於SQLite的持久性對象的作者,我說:使用核心數據。

當Core Data不存在於手機上時,我編寫了SQLPO。雖然我爲我在SQLPO上所做的工作感到自豪,儘管我比Core Data更喜歡它的一些方法(特別是不需要維護獨立的類文件和數據模型),但Core Data的基礎引擎更加成熟,有更多的工程時間投入其中。這就是爲什麼當Core Data來到iPhone SDK時,我放棄了SQLPO開發。

我還沒有做基準測試,但我猜測使用正確的話,Core Data在幾乎所有大容量情況下都會表現得更好。

SQLPO的開發速度更快,因爲您所做的只是創建頭文件,但除非您的數據需求相對較輕,否則我說您最好使用核心數據。

+2

傑夫,你已經放棄了,這太糟糕了,因爲平臺真正需要的是一個非常棒的ORM,它不是核心數據。 –

1

對我的經驗與SQLitePersistentObjects的一些infromation。

最初爲使用SQLPO的iOS 3.x開發的應用程序工作得很好。易於使用等 現在我正在把這個應用程序帶到iOS 4的過程中,事情開始變得陌生。

我現在看到以不可預知的速率發生數據庫損壞。

縱觀SQLPO代碼,顯示只有一個sqlite3_close語句,並且在無法打開數據庫時調用此語句。

我打算添加一個方法來明確地關閉數據庫,並從我的應用程序委託終止和iOS4 didMovetoBackground方法調用此方法。 可能有助於避免SQLPO數據庫損壞問題。