0

它的基本问题,但请帮助: -

场景:-我有一个NSArray {@"Bat",@"Bat",@"Bat",@"Bat"@"Ball",@"Ball",@"Cricket"},它将来自网络服务,基本上我想增加值,如果它从蝙蝠变为球,但还有一个条件是连续至少有两个球

例如,在上述情况下,如果 x=0,那么在 Nsarray 上的迭代之后,该值将是 1,因为如果有两个连续的 Cricket,那么只有一只蟋蟀,那么该值将为 2。

让我知道问题是否清楚,需要帮助。提前感谢您的帮助

4

2 回答 2

2

问题不是很清楚。我希望这是你想要的。

NSArray *strings = @[@"Bat",@"Bat",@"Bat",@"Bat",@"Ball",@"Ball",@"Cricket",];

NSUInteger index = -1;
NSString *previousString = nil;
BOOL canIncrement = FALSE;
for (NSString *string in strings) {
    if (!previousString) {
        previousString = string;
    }else if ([previousString isEqualToString:string]){
        canIncrement = TRUE;
    }else{
        index += canIncrement?1:0;
        canIncrement = FALSE;
        previousString = string;
    }
}

index += canIncrement?1:0;

NSLog(@"Index : %d",index);
于 2013-06-27T09:46:02.857 回答
1

你为什么不转而维护一个 NSDictionary,分别以“Ball”、“Bat”和“Cricket”等作为索引或键,并以 NSNumber 对象作为值?

或者它必须是一个数组吗?最后,我们处于 OOP 环境中。您可以发明一个对象gear,该对象将数据保存在字典甚至数组或其他任何东西中,并提供类似addBataddGear:(NSString *)gearType左右的方法,为您进行计数并提供类似batCount或的访问器gearCount:(NSString*)gearType

如果您坚持使用数组,我担心您将不得不遍历数组中的所有字符串并将它们与您感兴趣的值进行比较并计算匹配项。

于 2013-06-27T09:33:46.450 回答