Wenn ich eine Reihe von benutzerdefinierten Swift Klassen filtern, um ein Prädikats ich mit dem Fehler:Verwendung von Prädikaten auf Array-Objekte in Swift gibt Fehler
*** NSForwarding: warning: object 0x78ed21a0 of class 'Plantivo1_6.Seed' does not implement methodSignatureForSelector: -- trouble ahead
Unrecognized selector -[Plantivo1_6.Seed valueForKey:]
Wenn ich mich richtig erinnere dies in Objective-C funktionieren würde. Was ist mein Fehler?
let names = ["Tom","Mike","Marc"]
println(names)
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", "om")
let array = (names as NSArray).filteredArrayUsingPredicate(searchPredicate)
println(array)
println()
let mySeed1 = Seed() // Seed is a class with a `culture` String property
let mySeed2 = Seed()
let mySeed3 = Seed()
mySeed1.culture = "Tom"
mySeed2.culture = "Mike"
mySeed3.culture = "Marc"
let mySeeds = [mySeed1,mySeed2,mySeed3]
println(mySeeds)
let searchPredicate1 = NSPredicate(format: "SELF.culture CONTAINS[c] %@", "om")
let array1 = (mySeeds as NSArray).filteredArrayUsingPredicate(searchPredicate1)
println(array1)
Nein, tut es nicht ... Wie man das wissen soll ... –
einige Änderungen vorgenommen, wird das erklären es besser? Es ist nur die Art und Weise, wie NSPredate intern eine Zeichenfolge in einen Schlüssel konvertiert, der verwendet werden kann, um einen Wert von der Klasseninstanz zu erhalten. – jperl