Iphone 由于未捕获异常而终止应用程序';nsrange异常';,原因:';***-[NSMutableArray objectAtIndex:]:索引26超出范围[0..0]';

Iphone 由于未捕获异常而终止应用程序';nsrange异常';,原因:';***-[NSMutableArray objectAtIndex:]:索引26超出范围[0..0]';,iphone,ios4,xcode4,Iphone,Ios4,Xcode4,我希望能得到一些帮助。我以前用过这个,效果很好。我试着在一个新的应用程序中使用它,结果它坏了。我知道这是索引的问题,但我不能指出它 self.greensArray = [NSMutableArray array]; for (int i = 0; i < 26; ++i) { [self.greensArray addObject:[NSMutableArray array]]; } letterIndex =[[NSMutableArray allo

我希望能得到一些帮助。我以前用过这个,效果很好。我试着在一个新的应用程序中使用它,结果它坏了。我知道这是索引的问题,但我不能指出它

    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];

    }
}
self.greensArray=[NSMutableArray];
对于(int i=0;i<26;++i){
[self.greensArray addObject:[NSMutableArray]];
}
letterIndex=[[NSMutableArray alloc]init];
NSMutableArray*name=[searchViewArray valueForKey:@“meatName”];
对于(int i=0;i<[名称计数];++i){
NSUInteger firstLetter=[ALPHA rangeOfString:[[name objectAtIndex:i]substringToIndex:1]]位置;
[self.greensArray insertObject:[NSMutableArray]atIndex:i];
if(第一个字母!=NSNotFound){
[[self.greensArray objectAtIndex:firstLetter]addObject:[name objectAtIndex:i]];
}
char alphabet=[[name objectAtIndex:i]characterAtIndex:0];
NSString*uniChar=[NSString stringWithFormat:@“%C”,字母表];
如果(![letterIndex containsObject:uniChar])
{
[letterIndex addObject:uniChar];
}
}

问题出在这里:[self.greensArray insertObject:[NSMutableArray]atIndex:i];
我不知道为什么这在我的第一个应用程序中起作用,但这行代码为数组添加了额外的值。这就放弃了整数/肉名计数,导致整个应用程序崩溃

firstLetter是否可能超过25或greensArray的当前界限?哪一行生成崩溃?这是生成崩溃的代码--[[self.beefArray objectAtIndex:firstLetter]addObject:[name objectAtIndex:i]];更具体地说,当我说它抛弃了[Name count]时,我的意思是它向计数中添加了额外的值。所以,当应用程序寻找26个值时,它收到了更多,对我来说是136个。