3 Stimmen

feststellen, ob ein Objekt an index[i] in NSMUtableArray existiert

Leute ich möchte sehen, wenn ein Element bei index[i] nicht in einem anderen (oder aktuellen) Array vorhanden ist. Wenn mein Array also zum Beispiel so aussehen würde

[wer, wer4 , wer5 , werp , klo .. .

Dann möchte ich sehen, ob aExerciseRef.IDE (z. B. "sdf") bei index[i] vorhanden ist oder nicht. Ich nehme an, ich müsste eine Art von Iterator verwenden.

for( int i = 0; i < 20; i++ )
{
   if([instruct objectAtIndex:index2 + i] != [instruct containsObject:aExerciseRef.IDE] )                       
   NSLog(@"object doesn't exist at this index %i, i );
   else
   NSLog(@"well does exist")
}

Ich weiß, dass das nicht funktioniert, aber ich möchte damit nur verdeutlichen, was ich erreichen möchte.

bearbeiten:

Ich werde versuchen, es etwas ausführlicher und genauer zu formulieren.

1) Zunächst einmal ändert sich aExerciseRef.IDE jedes Mal, wenn es aufgerufen wird, so dass es einmal "ret" heißt und ein anderes Mal "werd".

2) Stellen Sie sich vor, ein Array wird mit aExerciseRef.IDE's gefüllt, dann möchte ich vergleichen, ob die Elemente in diesem Array in dem Array instruct existieren.

Ich würde also gerne sehen, ob das Element an, sagen wir, Position 2 (wtrk)

[wer, wtrk, wer , sla ... 

in dem Array vorhanden ist, das mit den aExerciseRef.IDE's gefüllt wurde.

Ich hoffe, ich habe mich dieses Mal klarer ausgedrückt.

2voto

Dave DeLong Punkte 240835

Sir Lord Mighty hat teilweise recht. Ja, Ihr Vergleich ist falsch. Nein, seine Lösung wird nicht funktionieren.

Hier ist eine, die das tut:

if (index < [anArray count] && [[anArray objectAtIndex:index] isEqual:anObject]) {
  NSLog(@"Got it!");
} else {
  NSLog(@"Don't have it.");
}

Alternativ können Sie auch die Methode containsObject: verwenden, um das Gleiche zu erreichen:

if ([anArray containsObject:aExerciseRef.IDE]) {
  NSLog(@"Got it!");
} else {
  NSLog(@"Don't have it.");
}

Bei der zweiten Option erhalten Sie nicht den Index des Objekts, aber das lässt sich leicht beheben:

NSInteger index = NSNotFound;
if ([anArray containsObject:aExerciseRef.IDE]) {
  index = [anArray indexOfObject:aExerciseRef.IDE];
  ...
}

0voto

Felixyz Punkte 18963

Ihr Beispiel macht überhaupt keinen Sinn und trägt nicht zur Klärung der Frage bei. Sie machen einen Vergleich zwischen einem Ausdruck vom Typ (id)

[instruct objectAtIndex:index2 + i]

und eine mit dem Typ BOOL

[instruct containsObject:aExerciseRef.IDE]

Und wenn sich das gesuchte Objekt am Index x in einem Array befindet, dann versteht es sich von selbst, dass containsObject auf dem Array für dieses Objekt YES zurückgibt.

Wenn das, was Sie erreichen wollen, einfach das ist, was Sie im Titel angeben, dann ist es so einfach wie:

if ([[anArray objectAtIndex:index] == anObject])
  NSLog (@"Got it!");
else
  NSLog (@"Don't have it.");

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X