Suchen Sie den Index eines NSArray, indem Sie den Wert übergeben

8

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).

    
rptwsthi 26.05.2011, 05:06
quelle

5 Antworten

10

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.

    
CRD 26.05.2011, 05:20
quelle
6

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

     

anObject

%Vor%      

Rückgabewert

     

Der niedrigste Index, dessen Entsprechung   Array-Wert ist gleich anObject . Ob   Keines der Objekte im Array ist   gleich anObject , gibt NSNotFound zurück.

     

Diskussion

     

Objekte werden als gleich betrachtet    isEqual: gibt YES zurück.

     

Wichtig : Wenn anObject ist nil an   Ausnahme wird ausgelöst.

    
PengOne 26.05.2011 05:16
quelle
4

Sie können verwenden:

%Vor%

um den Index des Objekts zu finden.
Und um zu prüfen, ob ein Objekt im Array vorhanden ist oder nicht, können Sie Folgendes verwenden:

%Vor%     
Nitish 26.05.2011 05:23
quelle
0

Verwenden Sie NSPredicate , um NSArray basierend auf NSDictionary

zu filtern %Vor%     
Rams 26.05.2011 05:19
quelle
0

Kombiniere objectAtIndex und indexOfObject wie folgt:

%Vor%     
Jens 15.12.2014 13:03
quelle

Tags und Links