Ist es in einem NSArray möglich, herauszufinden, ob ein bestimmter Wert im Array vorhanden ist oder nicht (ohne mit einer for-Schleife zu suchen)? Eine beliebige zufällige Standardmethode. Ich habe die Dokumentation durchsucht, aber keine Ich finde viel Relevantes.
Bitte erzähle mir auch von valueForKey
method (ich konnte das nicht von doc bekommen).
Die containsObject:
-Methode liefert normalerweise das, wonach Sie fragen - während der Name klingt, als würden Sie nach einer bestimmten -Instanz suchen (dh zwei Objekte mit demselben semantischen -Wert würde nicht übereinstimmen) es ruft tatsächlich isEqual:
für die Objekte auf, so dass es mit value getestet wird.
Wenn Sie den Index des Elements verwenden möchten, wie Ihr Titel es vorschlägt, verwenden Sie indexOfObject:
und ruft isEqual:
auf, um die Übereinstimmung zu finden.
valueForKey:
ist für wenn Sie ein Array von Wörterbüchern haben; Es sucht nach dem Schlüssel in jedem Wörterbuch und gibt das Array und die Ergebnisse zurück.
Ich glaube, Sie möchten die Methode indexOfObject
verwenden. Von die Dokumentation :
indexOfObject:
Gibt den niedrigsten Index zurück, dessen entsprechender Array-Wert ist gleich ein bestimmtes Objekt.
- (NSUInteger)indexOfObject:(id)anObject
Parameter
%Vor%
anObject
Rückgabewert
Der niedrigste Index, dessen Entsprechung Array-Wert ist gleich
anObject
. Ob Keines der Objekte im Array ist gleichanObject
, gibtNSNotFound
zurück.Diskussion
Objekte werden als gleich betrachtet
isEqual:
gibtYES
zurück.Wichtig : Wenn
anObject
istnil
an Ausnahme wird ausgelöst.
Tags und Links objective-c iphone nsarray