Quando ho filtrare una serie di classi Swift personalizzato utilizzando un predicato ottengo l'errore:Uso Predicati su array oggetti a Swift restituisce l'errore
*** NSForwarding: warning: object 0x78ed21a0 of class 'Plantivo1_6.Seed' does not implement methodSignatureForSelector: -- trouble ahead
Unrecognized selector -[Plantivo1_6.Seed valueForKey:]
Se non ricordo male questo funzionerebbe in Objective-C. Qual è il mio errore?
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)
No, non è così ... Come si può suppone di sapere che ... –
fatto qualche modifiche, vuol spiegare è meglio? È proprio il modo in cui NSPredicate funziona internamente per convertire una stringa in una chiave che può essere utilizzata per ottenere un valore dall'istanza della classe. – jperl