首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为Core数据中的多个对象(同一实体类型)生成数组实例?

如何为Core数据中的多个对象(同一实体类型)生成数组实例?
EN

Stack Overflow用户
提问于 2016-11-28 16:55:48
回答 1查看 42关注 0票数 0

我对编程非常陌生,所以希望我能正确地解释这一点,但也有一些上下文:我目前在核心数据中有一个Restaurant实体,并且用户能够添加新的对象(如Sbarro、McDonalds、PizzaHut、ShakeShack等)。我还有一个.csv预装菜单项数组(使用我在Core中制作的MenuItem实体),包括薯条、比萨饼、汉堡包、鸡肉等。

我现在设置的是一个详细的视图,用户可以导航到餐馆列表中。有一个‘菜单’按钮,显示我的菜单项列表,有一个‘是’或‘否’选项,可以选择。这将映射到菜单项数组中的Bool属性isAvailable

目前,我可以节省一家餐馆是否有龙虾,但是当单击其他餐馆时,龙虾也会显示为可用的(显然是因为McDonalds不提供龙虾),因为我正在更改主菜单项中的Bool

我的问题是:如何为每个餐厅生成菜单项数组的实例,以便可以保存菜单项的isAvailable 状态?在最理想的情况下,如果对主菜单项进行更改,每个餐厅的菜单项数组都会更新,但这听起来太好了,不可能是真的。我尝试在核心数据中在RestaurantMenuItem实体之间建立多到多的关系,但是我不知道如何通过我的餐馆对象访问菜单项。

EN

回答 1

Stack Overflow用户

发布于 2016-11-28 21:34:18

要做到这一点,通常的方法是摆脱isAvailable属性,而是使用多到多的关系来跟踪哪家餐厅有哪些菜单项。您不为每个MenuItem创建一个新的Restaurant集,而是为每种类型创建一个MenuItem,并且只将每个MenuItem关联到任何有项目的餐馆。

例如,给定两个Restaurant实例,

代码语言:javascript
复制
    myRestaurant1.name = "McDonald's"
    myRestaurant2.name = "Seafood Wonderland"

...and MenuItem,其中只有一个能提供,

代码语言:javascript
复制
    myMenuItem.name = "Lobster"

将菜单项添加到一个餐厅的menuItems关系中。使用Xcode 8自动类生成,这将类似于

代码语言:javascript
复制
    myRestaurant2.addToMenuItems(myMenuItem)

使用关系查找每家餐厅的菜单项:

代码语言:javascript
复制
    let restaurant1MenuItems = myRestaurant1.menuItems
    let restaurant2MenuItems = myRestaurant2.menuItems

这为您提供了菜单项的NSSet。此时,myRestaurant1MenuItems不包含龙虾,但myRestaurant2MenuItems包含龙虾。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40849581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档