我对编程非常陌生,所以希望我能正确地解释这一点,但也有一些上下文:我目前在核心数据中有一个Restaurant实体,并且用户能够添加新的对象(如Sbarro、McDonalds、PizzaHut、ShakeShack等)。我还有一个.csv预装菜单项数组(使用我在Core中制作的MenuItem实体),包括薯条、比萨饼、汉堡包、鸡肉等。
我现在设置的是一个详细的视图,用户可以导航到餐馆列表中。有一个‘菜单’按钮,显示我的菜单项列表,有一个‘是’或‘否’选项,可以选择。这将映射到菜单项数组中的Bool属性isAvailable。
目前,我可以节省一家餐馆是否有龙虾,但是当单击其他餐馆时,龙虾也会显示为可用的(显然是因为McDonalds不提供龙虾),因为我正在更改主菜单项中的Bool。
我的问题是:如何为每个餐厅生成菜单项数组的实例,以便可以保存菜单项的isAvailable 状态?在最理想的情况下,如果对主菜单项进行更改,每个餐厅的菜单项数组都会更新,但这听起来太好了,不可能是真的。我尝试在核心数据中在Restaurant和MenuItem实体之间建立多到多的关系,但是我不知道如何通过我的餐馆对象访问菜单项。
发布于 2016-11-28 21:34:18
要做到这一点,通常的方法是摆脱isAvailable属性,而是使用多到多的关系来跟踪哪家餐厅有哪些菜单项。您不为每个MenuItem创建一个新的Restaurant集,而是为每种类型创建一个MenuItem,并且只将每个MenuItem关联到任何有项目的餐馆。
例如,给定两个Restaurant实例,
myRestaurant1.name = "McDonald's"
myRestaurant2.name = "Seafood Wonderland"...and MenuItem,其中只有一个能提供,
myMenuItem.name = "Lobster"将菜单项添加到一个餐厅的menuItems关系中。使用Xcode 8自动类生成,这将类似于
myRestaurant2.addToMenuItems(myMenuItem)使用关系查找每家餐厅的菜单项:
let restaurant1MenuItems = myRestaurant1.menuItems
let restaurant2MenuItems = myRestaurant2.menuItems这为您提供了菜单项的NSSet。此时,myRestaurant1MenuItems不包含龙虾,但myRestaurant2MenuItems包含龙虾。
https://stackoverflow.com/questions/40849581
复制相似问题