Ich versuche, alle Kinder eines Elternteils zu holen.Swift - CoreData NSPredate - Fetch Children des Elternteils
In meinem Fall ist der Elternteil eine Entität AgendaEvent, die viele AgendaDate (die Kinder) hat.
so ist hier meine Funktion:
func getRelatedAgendaEvent(event: AgendaEvent) ->NSFetchRequest<AgendaDate> {
// create a fetch request that will retrieve all the AgendaDate.
let fetchRquest = NSFetchRequest<AgendaDate>(entityName: "AgendaDate")
// set the predicate to only keep AgendaDate related with the AgendaEvent selected
fetchRquest.predicate = NSPredicate(format: "parent == %@", event)
return fetchRquest
}
und ich verwende diese in didselectRow für eine Tableview:
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
var eventToPass: AgendaEvent!
var eventDateToPassArray: [AgendaDate]!
eventToPass = myTempEvents[indexPath.row]
eventDateToPassArray = try! context.fetch(getRelatedAgendaEvent(event: eventToPass))
DispatchQueue.main.async {() -> Void in
self.performSegue(withIdentifier: "EventToModify", sender: eventToPass)
}
}
}
Ich versuche eventDateToPassArray in einem Übergang zu verwenden. Der Fehler ich erhalte ist:
keypath parent not found in entity <NSSQLEntity AgendaDate id=1> with userInfo of (null)
Ich bin nicht sicher, dies ist der richtige Weg ist. Ich versuche, ein NSSet (AgendaDate) zu aktualisieren, wenn der Benutzer ein AgendaEvent bearbeitet. Während der Aktualisierung und AgendaEvent aktualisiert der Benutzer das Datum im zugehörigen AgendaData NSSet.
Vielen Dank!
------------- UPDDATE
Martin Sie dies bedeuten:
AgendaDate + CoreDataProperties.swift
extension AgendaDate {
@nonobjc public class func fetchRequest() -> NSFetchRequest<AgendaDate> {
return NSFetchRequest<AgendaDate>(entityName: "AgendaDate")
}
@NSManaged public var agendaDates: NSDate?
@NSManaged public var agendaEvents: AgendaEvent?
}
AgendaDate + CoreDataClass.Shift
import Foundation
import CoreData
@objc(AgendaDate)
public class AgendaDate: NSManagedObject {
}
Sie weisen eventDateToPassArray einen Wert zu, aber verwenden Sie es nie *. –
@MartinR ich weiß .... ich habe nur gedruckt, um die Ergebnisse zu sehen..aber ich bekomme diesen Fehler – Marco
Zeigen Sie, wie 'AgendaDate' definiert ist. Und wo * genau * bekommst du den Fehler? –