我将发布下面的代码,然后解释我的奋斗
此函数节省一天(如星期日、星期一、星期二等):
func appendDaysToArray() {
let dayLabel = dayName.text
daysArray.append(dayLabel)
let dayEntity = NSEntityDescription.entityForName("TrainingDay", inManagedObjectContext: moc!)
let trainingday = TrainingDay(entity: dayEntity!, insertIntoManagedObjectContext: moc)
trainingday.day = dayName.text
var error: NSError?
moc?.save(&error)
if let err = error {
var status = err.localizedFailureReason
println("\(status)")
} else {
println("Day #\(dayName.text) saved successfully!")
}
}这一条将细节保存为一个名字、若干组和多次重复(比如体操练习):
func appendTrainingDetails () {
let nameLabel = exerciseName.text
namesArray.append(nameLabel)
let numberOfSets = setsNumber.text?.toInt()
setsArray.append(numberOfSets!)
let numberOfReps = repsNumber.text?.toInt()
repsArray.append(numberOfReps!)
let detailsEntity = NSEntityDescription.entityForName("TrainingDetails", inManagedObjectContext: moc!)
let trainingdetails = TrainingDetails(entity: detailsEntity!, insertIntoManagedObjectContext: moc)
trainingdetails.exerciseName = exerciseName.text
trainingdetails.setsNumber = setsNumber.text!
trainingdetails.repsNumber = repsNumber.text!
var error: NSError?
moc?.save(&error)
if let err = error {
var status = err.localizedFailureReason
println("\(status)")
} else {
println("Exercise: #\(exerciseName.text) saved successfully!")
println("Number of sets: #\(setsNumber.text) saved successfully!")
println("Number of reps: #\(repsNumber.text) saved successfully!")
}
}我的应用程序运行良好,但我真正需要的是:每天,我将拥有多个exerciseNames、setsNumber和repsNumber。我建立了一对多的关系,但我不知道如何将TrainingDetails归因于daysArray中的每一天。
以下是我的两个模特:
import Foundation
import CoreData
class TrainingDay: NSManagedObject {
@NSManaged var day: String
@NSManaged var relationship1: NSSet
}和
import Foundation
import CoreData
class TrainingDetails: NSManagedObject {
@NSManaged var exerciseName: String
@NSManaged var repsNumber: String
@NSManaged var setsNumber: String
@NSManaged var relationship2: TrainingDay
}稍后,我将有一个按钮为每一天,当按下,他们将更新一个tableView的练习列表,为特定的一天。所以我需要建立一对多的关系。
我怎样才能做到这一点?
对任何错误感到抱歉。提前谢谢!!
发布于 2015-08-14 15:49:03
您想要做的事情的文档是在这个链接中,标题为“to -多关系”。
下面是一个简短的例子。首先,我建议把你的人际关系的名称改为更直观的东西。它真的会有帮助:
class TrainingDay: NSManagedObject {
@NSManaged var day: String
@NSManaged var trainingDetails: NSSet
}
class TrainingDetails: NSManagedObject {
// ... other stuff here
@NSManaged var trainingDay: TrainingDay
}确保您对代码所做的任何更改也在模型图中进行。确保将关系配置为模型图中彼此的逆关系。
您可以为给定的TrainingDay设置如下所示的TrainingDetails:
// This assumes you've created a TrainingDay called "trainingDay1", and a
// TrainingDetails object called "details".
details.trainingDay = trainingDay1核心数据还负责创建逆关系,因此trainingDay1对象将自动向其trainingDetails集添加details。
如果试图将对象添加到trainingDetails集中的TrainingDay中,则需要使用我链接到的文档中描述的mutableSetValueForKey:方法。基本上,看起来是这样的:
var details = trainingDay1.mutableSetValueForKey("trainingDetails")
details.addObject(newTrainingDetails)mutableSetValueForKey:创建代理对象。对它返回的集合所做的任何更改在您要修改的集合上都是有效的。
希望这能有所帮助!
https://stackoverflow.com/questions/32013330
复制相似问题