I have an array of strings.
How might I be able to figure out what index a string is in a array?
indexOfObject:@"Some string"! indexOfObject: uses isEqual: on the objects in the array, and NSString's implementation of isEqual: tests the value of the string, not the pointer ;)NSNotFound, which is returned when the object was not found in the array.Though very old but this question comes quite high in google search. Here is a version in using block,
- (void)testSearch
{
NSArray *hashAlgorithms = @[@"SHA1", @"SHA2", @"SHA256", @"SHA384", @"SHA512"];
NSString *searchFor = @"SHA384";
__block NSInteger index = NSNotFound;
[hashAlgorithms enumerateObjectsUsingBlock:^(id alg, NSUInteger idx, BOOL *stop) {
if ([alg compare:searchFor options:NSCaseInsensitiveSearch] == NSOrderedSame) {
NSLog(@"Found: %@", searchFor);
*stop = YES;
index = idx;
} else {
NSLog(@"NOT Equal: %@", alg);
}
}];
if (index == NSNotFound) {
NSLog(@"Not found. %li", (long)index);
} else {
NSLog(@"Found at: %li", (long)index);
}
}