:
tableView. , : var vakken = [NSManagedObject](), . , ,
, , , , , NSFetchedResultsController (. Apple Docs). View Core-Data.
, , , , , . appdelegate, ?
/ App Delegate. Apple, CoreData App Delegate; , . . NSManagedObjectContext , :
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDelegate.managedObjectContext
( , AppDelegate().managedObjectContext, , ). , , , ..
NSManagedObject, , , .
result - NSManagedObjects. valueForKey, "" setValue:(_, forKey:):
let firstObject = result[0]
let firstObjectName = firstObject.valueForKey("name")
:
let firstObjectGrades = firstObject.valueForKey("grades")
: . .
, A-Z Z-A, , 10-1 1-10. . , .
, . a NSSortDescriptor (. Apple Docs) :
let fetchRequest = NSFetchRequest(entityName: "Subject")
fetchRequest.sortDescriptors = [NSSortDescriptor(key:"name", ascending:true)
, . , ?
, . . , , Xcode " NSManagedObject" . Entity . ( , "" ).
, , , , valueForKey setValueForKey:
:
let Subject = NSManagedObject(entity: entitySubject!, insertIntoManagedObjectContext: context)
:
let subject = Subject(entity: entitySubject!, insertIntoManagedObjectContext: context)
( : - ).
Grade.setValue(vakken.last!.cijfer[j], forKey: "cijfer")
:
grade.cijfer = vakken.last!.cijfer[j]
let firstObjectGrades = firstObject.valueForKey("grades")
:
let firstObjectGrades = firstObject.grades
, addTagObject removeTagObject . :
Subject.setValue(NSSet(object: Grade), forKey: "grade")
Subject Grade: . , "-" () :
grade.subject = subject
CoreData ( ) .
?
-, Grades: Grades:
var vak: Subject! {
didSet {
grades = vak.grades.allObjects as! [Grade]
self.tableView.reloadData()
}
}
var grades: Array<Grade>!
, . , cellForRowAtIndexPath - :
let grade = grades[indexPath.row]
let cijfer = grade.cijfer
let weging = grade.weging
// populate cell labels etc using "cijfer" and "waging"
commitEditingStyle , Grade , :
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
let grade = grades[indexPath.row]
grade.subject = nil
managedobjectcontext.deleteObject(grade)
grades.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
do{
try mangedobjectcontext.save()
}catch{
print("error")
}
}
}
vak (subject) , ?
, , , ( ). , , , Subject, save() .