【发布时间】:2014-08-12 13:39:14
【问题描述】:
在 CoreData 中,我定义了从 Node 到 Tag 的无序对多关系。我创建了一个这样的 Swift 实体:
import CoreData
class Node : NSManagedObject {
@NSManaged var tags : Array<Tag>
}
现在我想将Tag 添加到Node 的实例中,如下所示:
var node = NSEntityDescription.insertNewObjectForEntityForName("Node", inManagedObjectContext: managedObjectContext) as Node
node.tags.append(tag)
但是,这会失败并出现以下错误:
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“对多关系不可接受的值类型:property = “tags”;所需类型 = NSSet;给定类型 = _TtCSs22ContiguousArrayStorage000000000B3440D4;值 = ( “<_ttc8motornav3tag>(实体:标签;ID:0xb343800;数据:{...})” )。'
对多关系的正确类型是什么?
【问题讨论】:
-
NSSet 在 Swift 中不可用?你在哪里找到的?
-
还有错误信息表明关系是有序的,而不是无序的。
-
@BryanChen 啊是的,你的评论让我意识到 NSSet 可以通过
Foundation获得。 -
@MartinR 我已经复制了错误消息,它仍然被定义为有序集。
-
@bouke:错误消息仍然提到“.. value for ordered to-many relationship”。您能否将实际的错误消息复制/粘贴到问题中,以避免将来的读者混淆?