Prädikat-filter-array von strings in SWIFT wirft Fehler sagen NSCFString ist nicht der Schlüssel-Wert-Codierung
Unten ist mein code-snippet
//Search Bar Delegate
func searchBar(searchBar: UISearchBar, textDidChange searchText: String)
{
println(searchText)
var predicate:NSPredicate=NSPredicate(format: "SELF CONTAINS[c] \(searchText)")!
self.listItemToBeDisplayed=listItem.filteredArrayUsingPredicate(predicate)
(self.view.viewWithTag(1) as UITableView).reloadData()
}
Fehler, die ich bekam:
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<__NSCFString 0x17405ef90> valueForUndefinedKey:]:
Klasse ist nicht die key-value-coding-konform für die Taste V.'
Möchte ich filter strings in array gefiltert werden meine Suche string. Wenn meine such-string enthalten ist, in keiner der Strings in array, dann sollte es aufgeführt werden.
sorry, code-Formatierung nicht funktioniert.
Dank nhgrif für die Formatierung der code wirklich zu schätzen. safari verrückt in diesen Tagen.
Ich glaube
genial! fixiert es. Jetzt seine nicht abstürzt. var Prädikat:NSPredicate=NSPredicate(format: "SELBST MIT %@", searchText)! so markieren Sie diese Frage beantwortet?
Jetzt können Sie. Das war so eine Vermutung, also ich hatte es nicht eine Antwort sofort. 🙂
Dank nhgrif für die Formatierung der code wirklich zu schätzen. safari verrückt in diesen Tagen.
Ich glaube
NSPredicate(format:)
stark erwartet, um mit verwendet werden printf
-Stil-format-strings (es werden automatisch Anführungszeichen Argumente, wie es fügt, etc). Sie sind mittels Swift-string-interpolation—das könnte das problem sein.genial! fixiert es. Jetzt seine nicht abstürzt. var Prädikat:NSPredicate=NSPredicate(format: "SELBST MIT %@", searchText)! so markieren Sie diese Frage beantwortet?
Jetzt können Sie. Das war so eine Vermutung, also ich hatte es nicht eine Antwort sofort. 🙂
InformationsquelleAutor user1325792 | 2014-11-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
NSPredicate(format:)
stark erwartet, um verwendet werden, mit printf-format-strings (es werden automatisch Anführungszeichen Argumente, wie es fügt, etc).Bist du mit der Swift-string-interpolation, also die bereits formatierte Abfrage kommt
NSPredicate
als einen einzigen string. Das hält es aus tun, was voodoo tut es mit Argumenten, so dass Sie mit einer fehlerhaften Abfrage.Verwenden Sie printf-Stil formatieren statt:
Sicher tut es — aber es ist zur Verfügung gestellt durch
NSArray
, nichtSwift.Array
, und da Swift 1.2 Sie müssen manuell gegossen, um die Verwendung vonNSArray
API. Aktualisierte Antwort zu reflektieren.InformationsquelleAutor rickster
Arbeiten mit Prädikat für ziemlich lange Zeit. Hier ist mein Fazit (SWIFT)
InformationsquelleAutor Jiří Zahálka