Завершение работы приложения из-за необработанного исключения «NSRangeException», причина: '*** - [NSMutableArray objectAtIndex:]: индекс 26 за пределами [0 .. 0]' - PullRequest
0 голосов
/ 25 марта 2011

Буду признателен за помощь.Я использовал это раньше, и он работал нормально.Я пытался использовать его в новом приложении, и он ломается.Я понимаю, что это проблема с индексом, но я не могу точно определить это.

    self.greensArray = [NSMutableArray array];
    for (int i = 0; i < 26; ++i) {
    [self.greensArray addObject:[NSMutableArray array]];
    }


letterIndex =[[NSMutableArray alloc] init];

NSMutableArray *name = [searchViewArray valueForKey:@"meatName"];
for (int i = 0; i < [name count]; ++i) {
    NSUInteger firstLetter = [ALPHA rangeOfString:[[name objectAtIndex:i ] substringToIndex:1]].location;
    [self.greensArray insertObject:[NSMutableArray array] atIndex:i];
    if (firstLetter != NSNotFound) {
        [[self.greensArray objectAtIndex:firstLetter] addObject:[name objectAtIndex:i]];
    }
    char alphabet = [[name objectAtIndex:i] characterAtIndex:0];
    NSString *uniChar = [NSString stringWithFormat:@"%C",alphabet];
    if(![letterIndex containsObject:uniChar])
    {
        [letterIndex addObject:uniChar];

    }
}

1 Ответ

0 голосов
/ 29 марта 2011

Проблема была здесь: [self.greensArray insertObject: [NSMutableArray array] atIndex: i];Я не знаю, почему это сработало в моем первом приложении, но эта строка кода добавила дополнительные значения в greensArray.Это сбило счетчик integer / meatName и привело к краху всего приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...