获取NSMutableArray中最后重复字符串的索引

时间:2015-07-06 13:20:23

标签: ios objective-c nsmutablearray

我有一个带有多个重复字符串的NSMutableArray,我正在尝试获取最后一个字符串索引。

 NSMutableArray *arrWithRepeatedStrings=[[NSMutableArray alloc]initWithObjects:@"iOS",@"apple",@"iOS",@"apple",@"apple",@"iOS", nil];

此处iOSapple是我的数组中重复的字符串。我认为这是可能的,我正在前往它。任何人都可以帮助我。

2 个答案:

答案 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;
                                      }];