我会发布一些代码然后解释我需要的东西。
两种型号:
import Foundation
import CoreData
class TrainingDay: NSManagedObject {
@NSManaged var day: String
@NSManaged var trainingDetails: NSSet
}
和
import Foundation
import CoreData
class TrainingDetails: NSManagedObject {
@NSManaged var exerciseName: String
@NSManaged var repsNumber: String
@NSManaged var setsNumber: String
@NSManaged var trainingDay: TrainingDay
}
好的,现在我在这里有这些方法:
func appendTrainingDay() {
let dayLabel = dayName.text
let dayEntity = NSEntityDescription.entityForName("TrainingDay", inManagedObjectContext: moc!)
let newTrainingDay = TrainingDay(entity: dayEntity!, insertIntoManagedObjectContext: moc)
newTrainingDay.day = dayName.text
var error: NSError?
moc?.save(&error)
if let err = error {
var status = err.localizedFailureReason
println("\(status)")
} else {
println("Training day:\(dayName.text)")
}
}
和
func appendTrainingDetailsToArray () {
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("Training day:\(trainingdetails)")
println("Exercise: #\(exerciseName.text) saved successfully!")
println("Number of sets: #\(setsNumber.text) saved successfully!")
println("Number of reps: #\(repsNumber.text) saved successfully!")
}
}
他们在这里被触发:
@IBAction func fixDayButton(sender: AnyObject) {
appendTrainingDay()
}
@IBAction func doneButton(sender: AnyObject) {
appendTrainingDetailsToArray()
exerciseTableView.reloadData()
}
完成此操作后,它应该做的是:用户将打印一天,如“星期一”,将其保存到核心数据中,并且在特定日期,用户将根据需要添加许多详细信息对象,这将填充tableView。这些对象中的每一个都包含3个属性:“exerciseName”,“repsNumber”和“setsNumber”。例如,正在发生的事情不是创建单个“星期一”对象,而是将许多细节对象添加到已存在的对象中,我创建了许多“星期一”,并且对于每个“星期一”,我创建了一个细节对象。 / p>
我该如何解决这个问题? 如何在保存核心数据细节的方法中,对我想要的特定日期进行抓取,并使用尽可能多的对象填充它?
- >我已经设置了一对多的关系并在它们之间反过来。
- >我不知道如何使用匹配我想要搜索的谓词来制作正确的获取请求。
- >我是Swift的新手,对C ++只有一点经验。
如果有人可以通过示例向我解释如何做到这一点,我将非常,非常感谢。
答案 0 :(得分:1)
设置char *p
关系。除非我错过了什么,否则你从未在任何地方建立这种关系。
编辑:
这样的事情:
trainingdetails.trainingDay
要访问trainingdetails.trainingDay = selectedTrainingDay
,您只需从Core Data中获取当天,并执行以下操作:
trainingdetails
如果没有更好地理解用户界面和工作流程,我只是在这里猜测。通常这种事情会有两个UITableViews - 一个列出日期,当你选择一天时,你会去另一个列出日期训练详细信息。在您的情况下,我猜您有一个日历视图,当您从日历视图中选择一天时,您将显示所选日期的培训详细信息列表。