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.
Related videos on Youtube
Author by
bbullis21
Updated on September 02, 2020Comments
-
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 almost 15 yearsWill this work with two different NSStrings -- the one in the array and the parameter being passed? Or is the comparison "deep"?
-
bbullis21 almost 15 yearsThank You! Amazingly quick response, This solved my question.
-
Alex Rozanski almost 15 yearsYes – equality is tested by sending an
isEqual:
message to the object. AnNSString
instance will return YES if the string values are equal, even if they are two different instances. -
Nico almost 15 yearsYou should use
NSUInteger
, notint
, particularly if you intend to support 64-bit Mac OS X.