2008-11-24 65 views

回答

3

我最近開始了一個項目,我決定在真實世界的應用程序中首次使用Core Data。我的應用程序實際上是使用自定義數據模型的舊版應用程序的2.0版,所以我花了很多時間來討論這個問題。以下是我自問的一些事情。

  • 的時間來學習核心數據如何在一個不平凡的應用和固定小蟲子和特性是彈出當你學習新的技術。這可能包括一個或兩個原型,因爲您不想跳過使用像Core Data這樣的應用程序的大塊應用程序負責。

  • Core Data是否可以解決在使用自定義數據模型時難以解決的問題,例如在內存中存儲和保存非常大的數據集。

  • 是否要與Core Data不可用的平臺(例如Cocoa Touch)共享代碼。沿着同樣的路線,如果你想要生成的數據文件是兼容的,而不必建立一個單獨的出口商。

  • 如果學習核心數據將有助於提升自己作爲程序員,無論是使其對Mac開發商店更具吸引力或僅供您自己使用。

  • 如果您的數據模型足夠簡單,那麼您並不需要撤消管理器支持或關係等核心數據真正發光的區域。

  • 如果您正在使用外部庫或其他技術(如分佈式對象),您可能不想使用NSManagedObject。

1
  1. 你,無論出於何種原因,10.4爲您的最低要求之前瞄準的是Mac OS X版本?如果是這樣,沒有核心數據給你。
  2. 你打算讓用戶手動排列列表中的東西嗎?如果是這樣,沒有核心數據 - 它不允許有序的關係。 (假設您可以創建一個數字「序列」屬性,您可以按順序排列,但保持這種一致性聽起來像是一個巨大的麻煩。)
  3. 您打算使用特定的文件格式作爲您的本機格式嗎? (例如,TextEdit的本機格式爲RTF。)如果不是,則不會將Core Data用於磁盤存儲,因此您可能根本不想使用它。 (您可能,但我不知道有足夠的其他原因。)
+0

我不知道我是否正確理解第三點。我不應該使用核心數據,如果我有一個本機文件格式,正確的? – 2008-11-26 01:18:33

0

踢:)

對於我來說,你需要問自己最大的問題是:你要存儲關鍵數據(用戶創建的內容)或可以輕鬆複製的數據(從互聯網下載的內容)。如果你有第一個(用戶創建的數據),我會盡快擺脫核心數據或確保你的應用程序有一個備份計劃。

例如,當嘗試將數據遷移到您卡住的對象模型的新版本時,一旦錯誤開始出現(並且相信我,就有),完全卡住!並告訴你的客戶「我很抱歉,我無法構建新版本的應用程序,我正在等待蘋果公司提出修補程序」,這不會在現實世界中削減它。沒有正式的方式來獲取或理解底層結構,所以一旦它繁榮起來,你就是自己的。

在那裏做過,不會再去那裏!

我的2美分

相關問題