Ich bin in Swift mit dem folgenden Problem konfrontiert.Swift: Suche nach einem String im Kerndatenmodell
Ich schrieb die folgende Funktion, um alle Personen in meinem Modell mit dem name
"David" abzurufen.
private func myFetchRequest()
{
let moc = (UIApplication.sharedApplication().delegate as! AppDelegate).managedObjectContext
let myRequest = NSFetchRequest(entityName: "RegisterOfPersons")
myRequest.predicate = NSPredicate(format: "name = %@", "David")
do{
let results = try moc.executeFetchRequest(myRequest)
for result in results
{
print(result)
}
} catch let error{
print(error)
}
}
Auch wenn mein Modell enthält zwei Einträge mit dem attribute
name = „David“, der Linie
myRequest.predicate = NSPredicate(format: "name = %@", "David")
diese Einträge nicht findet, weil „name“ ein optionales Attribut in meinem Modell ist. Muss ich nach Optional ("David") suchen, was etwa myRequest.predicate = NSPredicate(format: "name = %@", Optional("David"))
bedeutet?
Wie kann ich in meinem Modell nach allen Einträgen mit dem Namen "David" suchen? Was mache ich falsch?
Danke für Ihre Hilfe!
Nicht sicher versuchen
auch einschließen, aber mit 'name' ein optionales Attribut sein ist nicht verbunden. Swift-Optionen sind nicht dasselbe wie die optionalen Attribute von Core Data. –
Funktioniert die literale Syntax 'NSPredicate (Format:" name = 'David' ")? – vadian