我有一个工人和活动实体。我在为事件创建新工作人员时遇到问题,工作人员实体有相应的事件,但事件实体没有保存工人。(设置反向选项时不应该自动发生这种情况)
class Event: NSManagedObject {
@NSManaged var id: NSNumber
@NSManaged var name: String
@NSManaged var startTime: String
@NSManaged var endTime: String
@NSManaged var workers: NSMutableSet
func addWorker(name: String, startTime: String, endTime: String) {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
var worker: Worker = NSEntityDescription.insertNewObjectForEntityForName("Worker", inManagedObjectContext: managedContext) as! Worker
worker.name = name
worker.startTime = startTime
worker.endTime = endTime
worker.id = Worker.getNewWorkerId()
worker.events.addObject(self)
var error: NSError?
if !managedContext.save(&error) {
println("Could not save \(error), \(error?.userInfo)")
}
}
}
答案 0 :(得分:1)
您还必须将关系定义为" To Many"关系的两端。要定义这样的关系,请选择相关关系和右窗格设置'类型'对许多人来说,
此外,NSManagedObject子类中的多对多属性应为NSSet和NSOrderedSet类型,而不是NSMutableSet。请参阅此处的文档:Managed Object Accessor Methods。
如果您想添加关于该关系的任何其他信息,请联系'或者加入'将需要实体。 (CoreData Many-To-Many Relationships)