ich tun möchte, Nummer Vergleich mit ZWISCHEN durch mein benutzerdefiniertes Objekt schreiben. Ich habe String-Vergleich gemacht, aber Nummer Vergleich schreit Fehler wie im folgenden Code.Wie NSPredicate benutzerdefiniertes Objekt (CGFloat var) zwischen dem Betrieb
class CustomClass: NSObject {
var name : String?
var aWidth : CGFloat!
}
String Vergleich die
let predicate = NSPredicate(format: "SELF.aWidth > 0 AND SELF.aWidth < 50")
let predicate = NSPredicate(format: "SELF.aWidth < 50")
Dieses totaly falsch
let predicate = NSPredicate(format: "SELF.name contains[c] %@","Sal")
JEDOCH funktioniert weiß ich.
let predicate = NSPredicate(format: "SELF.aWidth BETWEEN {%@, %@}", {minWidth, maxWidth})
Grund: '[< test.CustomClass 0x7fe86274bfd0> valueForUndefinedKey:.]: Diese Klasse nicht Schlüsselwert ist Codierung-konform für den Schlüssel aWidth'
Alle Suche nach diesem Fehler hat mich Storyboard Fragen.
Wie kann ich ein Prädikat mit BETWEEN schreiben? Vielen Dank im Voraus
UPDATE
Ich fand auch dieses Beispiel über Filter in schnellen verwendet, die hilfreich ist. Aber ich habe immer noch das Problem.
class Person : NSObject {
var age : CGFloat?
init(age: CGFloat) {
self.age = age
}
}
Filter
let eventAttendees = [Person(age: 22), Person(age: 41), Person(age: 23), Person(age: 30)]
let filteredAttendees = eventAttendees.filter({
$0.age < 30
})
for person in filteredAttendees {
print(person.age!)
}
Wenn ich versuche, gleiche Technik zu verwenden, erhalte ich diese Fehler diesmal.
Erster Ansatz
let array = self.testDictionary.allValues as Array
var filteredArray = array.filter({ (user: Person) -> Bool in
return $0.age < 30
})
Anonymous Schließung Argumente können nicht innerhalb eines Verschlusses verwendet werden, die explizite Argumente
Zweiter Ansatz
let array = self.testDictionary.allValues as Array
var filteredArray = array.filter({ (user: Person) -> Bool in
return true
})
hat
Wert kann nicht vom Typ umwandeln '(Person)' -> Bool zu erwarten Argument Typ '(ANYOBJECT)' -> Bool
Dank
Dies ist hilfreich, nie benutzt diese neue Filter für Array in Swift. einfach und schnell. – selcuk