我有一个带有多个重复字符串的NSMutableArray,我正在尝试获取最后一个字符串索引。
NSMutableArray *arrWithRepeatedStrings=[[NSMutableArray alloc]initWithObjects:@"iOS",@"apple",@"iOS",@"apple",@"apple",@"iOS", nil];
此处iOS
和apple
是我的数组中重复的字符串。我认为这是可能的,我正在前往它。任何人都可以帮助我。
答案 0 :(得分:4)
您可以通过反向枚举来获取最后一次出现的字符串索引。请使用以下代码。如果您想要匹配字符串而不是@"iOS"
,则可以将匹配字符串更改为@"apple"
。
NSMutableArray *arrWithRepeatedStrings=[[NSMutableArray alloc]initWithObjects:@"iOS",@"apple",@"iOS",@"apple",@"apple",@"iOS", nil];
NSInteger index = [arrWithRepeatedStrings indexOfObjectWithOptions:NSEnumerationReverse passingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
if([obj isEqualToString: @"apple"])
return YES;
else
return NO;
}];
答案 1 :(得分:2)
我理解你想要在数组中多次使用的最后一个对象的索引的问题。这与@ Gandalf的解决方案完全不同,所以这是我的看法:
NSInteger index = [array indexOfObjectWithOptions:NSEnumerationReverse
passingTest:^BOOL(id obj, NSUInteger idx, BOOL *stop) {
BOOL match = [arrWithRepeatedStrings indexOfObject:obj] != idx;
if (match) *stop = YES;
return match;
}];