2010-06-18 113 views
0

我正在開發一個應用程序,我在列表中下載了一些產品。下載的產品顯示在一個表格中,每個將顯示詳細信息和更多信息。實現幫助...子類NSManagedObject?

這些相同的產品可以保存爲最喜歡的,爲此我使用核心數據。

我希望能夠重新使用一堆視圖來顯示產品,這意味着商店對象和下載的對象必須是同一種類型。

現在,我將如何去最好地實現對象?我可以做一個類像這樣:

FavoriteProduct:NSManageObject //執行

,然後繼承

產品:FavoriteProduct //執行

CD類只是不給我一切。什麼是合併這兩個對象類的最好方法,所以在實現每個對象的不同視圖方面,我沒有多少工作要做。基本上,我只是希望能夠像ProductProduct對象那樣調用產品對象上的相同方法等,並重新使用這兩種視圖。這兩者之間只有一點區別(其中一個當然是存儲爲最喜歡的,並且具有一些額外的值,例如註釋,標籤,而產品不具有)。

在此先感謝

回答

0

前段時間我有同樣的問題。快速回答:你不能在沒有上下文的情況下實例化一個NSManagedObject子類,因此使用一個NSManagedObject作爲超級類來保存那些不會被保存的東西(因爲它只是從網上查看),可能不是一個好主意。

因此,對於您的情況:

  • FavoriteProduct必須是NSManagedObject
  • 的一個子類
  • 因此產品(超類FavoriteProduct的)必須是NSManagedObject背景太
  • 的子類,但隨後有要創建一個上下文,並不好

作爲一種解決方法,您可以爲產品類型但不包含FavoriteProduct的對象創建一個「假」/臨時上下文, Ë層次時描述(這似乎有點哈克給我)

另一個可能的解決方案是該層次結構的方式:

  • 產品:NSObject的(或其他)
  • FavoriteProduct:產品
  • StoredProduct:NSManagedObject

這這種情況下,實現您對產品的所有方法/ FavoriteProduct爲通常情況下,並有從FavoriteProduct綁定StoredProduct(即。你可以有

我很想看看別人在這種情況

做,將被用於更新CoreData當有一些關於FavoriteProduct性質的改變對你FavoriteProduct屬性「storedProduct」)