Я пытаюсь выполнить итерацию через NSMutableArray
, который содержит переменные @"yes"
и @"no"
NSString
значения. Массив содержит значения 5 @"yes"
. Тем не менее, когда я распечатываю значения индекса местоположения, который он ищет в массиве, он продолжает возвращать то, что первый экземпляр @"yes"
находится в массиве self.allFavorites
- независимо от порядка NSMutableArray
. Почему это?NSMutableArray For-In Search Возвращаемое первое значение найдено
for (NSString *favoriteObject in self.allFavorites)
{
NSUInteger index = [self.allFavorites indexOfObject:favoriteObject];
if ([favoriteObject isEqual:@"yes"])
{
[self.favoriteNames addObject:[self.allNames objectAtIndex:index]];
NSLog(@"index: %i", index);
}
}
Консоль печатает:
2014-09-24 21:23:12.136 AppName[526:87372] index: 2
2014-09-24 21:23:12.136 AppName[526:87372] index: 2
2014-09-24 21:23:12.137 AppName[526:87372] index: 2
2014-09-24 21:23:12.137 AppName[526:87372] index: 2
2014-09-24 21:23:12.137 AppName[526:87372] index: 2
Этот это явно задокументированное поведение индекса indexOfObject: ' –
indexOf найдет первый. Как бы он знал, в какую итерацию вы находитесь. Вам нужно как-то подсчитать итерации самостоятельно - возможно, лучше всего просто «for» (int i = 0; i