Khi tôi lọc một mảng của các tầng lớp tùy chỉnh Swift sử dụng một Predicate tôi nhận được lỗi:Sử dụng vị từ trên mảng các đối tượng trong Swift trả Lỗi
*** NSForwarding: warning: object 0x78ed21a0 of class 'Plantivo1_6.Seed' does not implement methodSignatureForSelector: -- trouble ahead
Unrecognized selector -[Plantivo1_6.Seed valueForKey:]
Nếu tôi nhớ không lầm này sẽ làm việc trong Objective-C. Sai lầm của tôi là gì?
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)
Không, nó không ... như thế nào một nghĩa vụ phải biết rằng ... –
Thực hiện một số chỉnh sửa, không có giải thích nó tốt hơn? Nó chỉ là cách mà NSPredicate làm việc nội bộ để chuyển đổi một chuỗi thành một khóa có thể được sử dụng để thu được một giá trị từ cá thể lớp. – jperl