2016-08-19 105 views
0

我建立一個IOS應用程序,我有以下問題類的關係:CoreData和實施協議

我說一類Animal含有類CatsDogs。這些類別又分爲DomesticCats,WildCats(分別爲DomesticDogs,WildDogs),其中包含貓和狗的物種,其中一些是家養動物,而另一些則不是。

我有另一個類PetOwner其中將包含一個對多關係petsSet要麼DomesticCatsDomesticDogs的情況下,反比關係是owner

有沒有在我的應用的CoreDate模型中建立這種關係的方法? 它不是CoreData我會定義一個協議<DomesticAnimal>DomesticCatsDomesticDogs將實現,包含(其他)屬性owner,但我不認爲我可以將它與CoreData模型混合?

或者我需要在我的CoreData模型來創建一個一對多的關係形式PetOwnerAnimal,但我可以強制執行,只有實現<DomesticAnimal>類將永遠被添加到PetOwnerpetsSet

回答

0

我建議一個可以使管理數據變得更簡單的方法。

添加一個新的實體,並命名爲AnimalType,一個字符串屬性,你可以添加類型的「國內」和「野」,並將其與實體Animal或許命名爲typeAnimal,其倒數將作爲一段關係實體Animal中的關係,可能名稱爲animalType

這樣每個實體Animal可以有一個「家庭」或「野生」類型。

然後,當您需要僅包含「家養」動物的數據集時,您可以對實體Animal運行提取,其謂詞設置爲animalType = "domestic"