一位体操运动员与很多人见面。有人可以提供一些关于我如何为每个体操运动员设置会面的信息。它打印出阵列中的每个体操运动员,但只会将分配给最后的体操运动员。
newMeet.meetName = "Winter Classic"
newMeet.meetDate = "Sat October 26, 2016"
newMeet.meetDateSort = "2016-09-26"
newMeet.meetTime = "02:00 PM"
newMeet.meetLocation = "Phoenix, AZ"
newMeet.meetStatus = "Active"
let request = NSFetchRequest(entityName: "Gymnast")
request.predicate = NSPredicate(format: "isActive = %@", "Yes")
do {
let results = try AD.managedObjectContext.executeFetchRequest(request) as! [Gymnast]
for result in results {
let newMeets = result.meets?.mutableCopy() as! NSMutableSet
newMeets.addObject(newMeet)
result.meets = newMeets.copy() as? NSSet
print("\(result.fullName!)")
}
} catch {
fatalError("Failed to save data")
}
AD.saveContext()
self.navigationController?.popViewControllerAnimated(true)
答案 0 :(得分:1)
您将关系描述为Gymnast
到Meet
个Meet
。如果它是一对多关系,则意味着每个Gymnast
只能与单个Gymnast
相关联,尽管每个Meet
可以与多个Meet
相关联}。
如果您对关系的描述是正确的,那么您所看到的正是预期的结果。由于每个Gymnast
只能有一个Meet
,因此每次通过循环都会重新分配该关系与上一次传递中的关系。
我猜这种关系应该是多对多,而不是一对多,因为每个Gymnast
可能涉及多个{{1}}。