gpt4 book ai didi

ios - 为购物 list 应用程序 swift 2 创建一个 -> 多个关系

转载 作者:行者123 更新时间:2023-11-29 01:24:09 24 4
gpt4 key购买 nike

我有以下关系enter image description here

这个想法是一个“列表”实体将可以访问许多“项目列表”实体,即一个列表将包含多个项目。我试图通过以下方式将项目添加到列表实体:

    let newList = NSEntityDescription.insertNewObjectForEntityForName("List", inManagedObjectContext: context) as! List
newList.name = listName
newList.shoppingDate = shoppingTripDate
newList.eventDate = eventDate

let itemEnt = NSEntityDescription.insertNewObjectForEntityForName("ItemList", inManagedObjectContext: context) as! ItemList
itemEnt.item = "Eggs"
itemEnt.list = newList

ItemEnt.list = newList 行连接两者,如上面的屏幕截图所示。

但是,在另一个 View Controller 中,我从核心数据中检索该对象并尝试访问其 item 属性,如下所示:

shoppingListObject!.itemList!.item

这会使程序崩溃。

我是不是遗漏了什么或做错了什么?

编辑:这是它在终端中产生的错误

*** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[_NSFaultingMutableSet 项目]:无法识别的选择器发送到实例 0x7fd0a4951960”

最佳答案

该错误告诉您 itemList 是一个 NSSet。这是有道理的,因为这就是 Core Data 的对多关系的工作方式。它还告诉您 NSSet 没有名为 item 的方法,这也是有道理的。您试图在 NSSet 上调用 NSSet 没有的方法,这就是应用程序崩溃的原因。

从您的模型图中,shoppingListObject!.itemList!ItemList 实例的 NSSet。您可以使用 NSSet 方法访问单个实例。

但我同意 Martin 的评论——奇怪的是你能够编译这段代码。 Swift 应该捕捉到这一点,除非你正在做一些不寻常的事情来阻止它这样做。

关于ios - 为购物 list 应用程序 swift 2 创建一个 -> 多个关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34211647/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com