How might I check if a particular NSString is present in an NSArray?
You can do it like,
NSArray* yourArray = [NSArray arrayWithObjects: @"Str1", @"Str2", @"Str3", nil];if ( [yourArray containsObject: yourStringToFind] ) { // do found} else { // do not found}
Iterating or containsObject are order n ways to find.
If you want constant time lookup, you can also maintain a hash table like NSSet or NSHashTable but that increases space but saves time.
NSArray* strings = [NSArray arrayWithObjects: @"one", @"two", @"three", nil];NSSet *set = [NSSet setWithArray:strings];NSString* stringToFind = @"two";NSLog(@"array contains: %d", (int)[strings containsObject:stringToFind]);NSLog(@"set contains: %d", (int)[set containsObject:stringToFind]);
Depends on your needs. Either indexOfObject
if you care about equality (most likely), or indexOfObjectIdenticalTo
if you care it's actually the same object (i.e. same address).
Source: