创建一个 - >许多关系购物清单应用程序swift 2

时间:2015-12-10 21:00:59

标签: ios swift core-data relationships

我有以下关系enter image description here

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

APIDataManager

使用行LocalDataManager连接两者,如上图所示。

但是,在另一个视图控制器中,我从核心数据中检索此对象并尝试访问其 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

这会导致程序崩溃。

我错过了什么或做错了吗?

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

***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [_ NSFaultingMutableSet item]:无法识别的选择器发送到实例0x7fd0a4951960'

1 个答案:

答案 0 :(得分:1)

该错误告诉您itemListNSSet。这是有道理的,因为核心数据与众多关系的运作方式。它还告诉您NSSet没有名为item的方法,这也是有道理的。您试图在NSSet NSSet上没有shoppingListObject!.itemList!调用方法,这就是应用崩溃的原因。

从您的模型图表中,NSSetItemList的{​​{1}}个实例。您可以使用NSSet方法访问各个实例。

但我同意马丁的评论 - 你能够编译这段代码很奇怪。斯威夫特应该抓住这一点,除非你做了一些不寻常的事情,否则就会阻止它这样做。