核心数据 [NSSet intersectsSet:]:set 参数不是 NSSet

Posted

技术标签:

【中文标题】核心数据 [NSSet intersectsSet:]:set 参数不是 NSSet【英文标题】:Core data [NSSet intersectsSet:]: set argument is not an NSSet 【发布时间】:2015-10-09 11:39:11 【问题描述】:

我有两个关系表。

在 ShopItem 类尝试保存产品:

let productEntity = NSEntityDescription.entityForName("Product", inManagedObjectContext: self.managedObjectContext!)
                    product = Product(entity: productEntity!, insertIntoManagedObjectContext: self.managedObjectContext!)

if let product_title:String = jsonObj["product_title"] as? String 
                        product.setValue(product_title, forKey: "product_title")
                     else 
                        product.setValue("", forKey: "product_title")
                    

                    product.setValue(self, forKey: "shopitem")
                    do 
                        try self.managedObjectContext!.save()
                     catch 
                        fatalError("Failure to save context: \(error)")
                    

jsonObj - 这是来自服务器的 json 响应。

并得到一个错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSSet intersectsSet:]: set argument is not an NSSet' 

【问题讨论】:

这里是答案:[a link]***.com/questions/7385439/… 我有这个问题。仅适用于 iPad,不适用于 iPhone。 【参考方案1】:

我通过将@objc(Product) 添加到我的班级来解决问题。

@objc(Product)
class Product: NSManagedObject 
    ...

谁能解释一下这是什么意思?

【讨论】:

以上是关于核心数据 [NSSet intersectsSet:]:set 参数不是 NSSet的主要内容,如果未能解决你的问题,请参考以下文章

NSSet 的 NSSet 上的核心数据查询

iOS核心数据一对多关系NSSET

核心数据缓存 NSSet 属性

将核心数据对象设置为 NSSet

核心数据,如何从关系集合中删除一个元素(NSSet)

核心数据麻烦排序相关对象的 NSSet