NSMutableArray - Get Arrays Index Integer By Searching With A String

29,781

You can use the indexOfObject: method from NSArray:

NSUInteger index = [animalOptions indexOfObject:@"Bear"];

If there are duplicate entries then the lowest index of that object is returned. For more information, take a look at the docs.

Share:
29,781

Related videos on Youtube

bbullis21
Author by

bbullis21

Updated on September 02, 2020

Comments

  • bbullis21
    bbullis21 almost 4 years

    I have been working with NSMutableArray and have had no problems retrieving an object from an array by using objectAtIndex:int. Rather then pulling an object out of the array by an integer is their a way to get the index position by searching the array with a string.

    animalOptions = [[NSMutableArray alloc] init]; 
    //Add items
    [animalOptions addObject:@"Fish"];
    [animalOptions addObject:@"Bear"];
    [animalOptions addObject:@"Bird"];
    [animalOptions addObject:@"Cow"];
    [animalOptions addObject:@"Sheep"];
    
    NSString * buttonTitle = [animalOptions objectAtIndex:1];
    // RETURNS BEAR
    
    int * objectIndex = [animalOptions object:@"Bear"];
    // THIS IS WHAT I NEED HELP WITH, PULLING AN INDEX INTEGER WITH A STRING (ex: Bear)
    

    Hopefully this makes sense, and there is an answer out there, I have been unable to research online and find anything through google or apple's class references.

  • fbrereto
    fbrereto almost 15 years
    Will this work with two different NSStrings -- the one in the array and the parameter being passed? Or is the comparison "deep"?
  • bbullis21
    bbullis21 almost 15 years
    Thank You! Amazingly quick response, This solved my question.
  • Alex Rozanski
    Alex Rozanski almost 15 years
    Yes – equality is tested by sending an isEqual: message to the object. An NSString instance will return YES if the string values are equal, even if they are two different instances.
  • Nico
    Nico almost 15 years
    You should use NSUInteger, not int, particularly if you intend to support 64-bit Mac OS X.