2011-01-08 97 views
1

我花了幾天的時間學習和編寫NSCoding,並最終得到它的工作。然而,將(非常複雜的)對象圖進行歸檔和解析花費了很長時間,這是不可接受的。在搜索了一段時間的互聯網之後,我認爲更好的方法是使用核心數據。您是否應該將我的所有類重寫爲NSManagedObject的子類或2)我應該在每個類中創建NSManagedObject的實例變量,以便對該類的任何更改也更新其核心數據表示形式?無論哪種方式都需要對現有類進行重大更改,並且我認爲如果它改變了類的初始化方式,我還必須更新大量的單元測試用例。我應該創建子類NSManagedObject嗎?

你有什麼建議?我真的不想再去錯誤的做法...

謝謝!

+0

您有一個性能問題。你應該剖析你的代碼來找出問題的所在。你有沒有這樣做? – 2011-01-08 18:07:01

回答

2

我會推薦1),如果你使用核心數據。 2)沒有多大意義。例如,A* a1A* a2指的是B* b。如果ABNSManagedObject的子類,則可以將該關係輕鬆保存並從文件中檢索。但是,如果AB具有NSManagedObject實例作爲ivars,那麼如何保持這種關係,即兩個A是指一個B?您將被迫編寫大量膠合代碼,這些代碼基本上由Core Data API提供。

如果你決定使用核心數據,我可以給一個非常重要的建議是閱讀蘋果的單證非常非常從開始到結束仔細,並抗拒的衝動,從一天寫代碼一。核心數據是一組相當大的API,在開始編寫代碼之前掌握整個結構將會在很多天後節省您的時間。

相關問題