Wie durchsucht man ein NSSet oder NSArray nach einem Objekt mit einem bestimmten Wert für eine bestimmte Eigenschaft?
Suchen ein NSSet oder NSArray für ein Objekt, welches einen bestimmten Wert für eine bestimmte Eigenschaft?
Beispiel: ich habe ein NSSet mit 20 Objekten, und jedes Objekt hat eine type
Eigenschaft. Ich möchte das erste Objekt, das die [theObject.type isEqualToString:@"standard"]
.
Ich erinnere mich, dass es möglich war, die Nutzung von Prädikaten, die irgendwie für diese Art von Zeug, nicht wahr?
InformationsquelleAutor der Frage dontWatchMyProfile | 2010-06-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
NB: Der Begriff des ersten gefunden Objekt in einem NSSet keinen Sinn macht, da die Reihenfolge der Objekte in einem set ist nicht definiert.
InformationsquelleAutor der Antwort Ole Begemann
Können Sie das gefilterte array als Jason und Ole beschrieben haben, aber da wollen Sie nur ein Objekt, ich würde verwenden
- indexOfObjectPassingTest:
(wenn es in einem array) oder-objectPassingTest:
(wenn es in einem Satz), und vermeiden Sie die Erstellung der zweiten Reihe.InformationsquelleAutor der Antwort NSResponder
In der Regel, ich benutze
indexOfObjectPassingTest:
da finde ich es bequemer zu sagen, dass ich test in Objective-C-code anstattNSPredicate
syntax. Hier ein einfaches Beispiel (sich vorstellen, dassintegerValue
war eigentlich eine Eigenschaft):Die Ausgabe dieses Codes ist:
InformationsquelleAutor der Antwort Carl Veazey
InformationsquelleAutor der Antwort Jason Coco