Swift CoreData-一对多关系
我将发布以下代码,然后解释我的挣扎 此功能可保存一天(如星期日、星期一、星期二等): 这一个将细节保存为一个名称、一系列设置和一系列重复(如健身房练习): 我的应用程序运行正常,但我真正需要的是:每天,我都会有多个exercisename、setnumber和repsNumber。我设定了一对多的关系,但我不知道如何将培训细节归因于daysArray中的每一天 以下是我的两个型号:Swift CoreData-一对多关系,swift,core-data,one-to-many,nsfetchedresultscontroller,relationships,Swift,Core Data,One To Many,Nsfetchedresultscontroller,Relationships,我将发布以下代码,然后解释我的挣扎 此功能可保存一天(如星期日、星期一、星期二等): 这一个将细节保存为一个名称、一系列设置和一系列重复(如健身房练习): 我的应用程序运行正常,但我真正需要的是:每天,我都会有多个exercisename、setnumber和repsNumber。我设定了一对多的关系,但我不知道如何将培训细节归因于daysArray中的每一天 以下是我的两个型号: import Foundation import CoreData class TrainingDay: NSM
import Foundation
import CoreData
class TrainingDay: NSManagedObject {
@NSManaged var day: String
@NSManaged var relationship1: NSSet
}
及
稍后,我会为每天设置一个按钮,当按下按钮时,他们会用当天的练习列表更新一个tableView。这就是为什么我需要设置一对多关系
我怎样才能做到这一点
对不起,有什么错误。提前谢谢 您想做什么的文档在标题“多关系”下 下面是一个简短的例子。首先,我建议将你的关系名称改为更直观的名称。这将真正有助于:
class TrainingDay: NSManagedObject {
@NSManaged var day: String
@NSManaged var trainingDetails: NSSet
}
class TrainingDetails: NSManagedObject {
// ... other stuff here
@NSManaged var trainingDay: TrainingDay
}
确保对代码所做的任何更改也在模型图中进行。确保这些关系在模型图中配置为彼此相反
您可以为给定的TrainingDetails
设置TrainingDay
,如下所示:
// This assumes you've created a TrainingDay called "trainingDay1", and a
// TrainingDetails object called "details".
details.trainingDay = trainingDay1
var details = trainingDay1.mutableSetValueForKey("trainingDetails")
details.addObject(newTrainingDetails)
核心数据也负责创建反向关系,因此trainingDay1
对象将自动向其trainingDetails
集合添加details
如果您试图将对象添加到TrainingDay
中设置的trainingDetails
,则需要使用我链接到的文档中描述的mutableSetValueForKey:
方法。基本上,它看起来是这样的:
// This assumes you've created a TrainingDay called "trainingDay1", and a
// TrainingDetails object called "details".
details.trainingDay = trainingDay1
var details = trainingDay1.mutableSetValueForKey("trainingDetails")
details.addObject(newTrainingDetails)
mutableSetValueForKey:
创建代理对象。对其返回的集合所做的任何更改都对您试图修改的集合有效
希望这有帮助 我认为你的答案是对的,但我仍然有些怀疑。你有没有其他像facebook或whatsapp这样的社交媒体可以让我们聊天?我真的很想掌握这段感情。我马上给你发电子邮件
var details = trainingDay1.mutableSetValueForKey("trainingDetails")
details.addObject(newTrainingDetails)