我有一个NSArray的,我想找到一个元素的最后一次出现。 例如:
[apple, oranges, pears, apple, bananas];
int i = lastIndexOf("apple");
out: i == 3;
我在努力寻找一个简单的解决方案寻找一个API的,但因此它是相当困难的理解,我应该使用哪个函数有没有例子。
我有一个NSArray的,我想找到一个元素的最后一次出现。 例如:
[apple, oranges, pears, apple, bananas];
int i = lastIndexOf("apple");
out: i == 3;
我在努力寻找一个简单的解决方案寻找一个API的,但因此它是相当困难的理解,我应该使用哪个函数有没有例子。
NSUInteger index = [array indexOfObjectWithOptions:NSEnumerationReverse
passingTest:^(id obj, NSUInteger i, BOOL *stop) {
return [@"apples" isEqualToString:obj];
}];
如果阵列中不包含@"apples"
, index
将NSNotFound
。
NSArray
有indexOfObjectWithOptions:passingTest:
这将让你在反向搜索。
例如:
NSArray *myArr = @[@"apple", @"oranges", @"pears", @"apple", @"bananas"];
NSString *target = @"apple";
NSUInteger index = [myArr indexOfObjectWithOptions:NSEnumerationReverse
passingTest:^BOOL(NSString *obj, NSUInteger idx, BOOL *stop) {
return [target isEqualToString:obj];
}];
你可以找到在这种方法的更多细节苹果文档 。
如果有人想用类别可重复使用的方法,我写了一个lastIndexOf。
代码可以发现,从这里自由使用 -
http://www.tejasshirodkar.com/blog/2013/06/nsarray-lastindexof-nsmutablearray-lastindexof/