向NSMutableArray添加对象时出现NSRangeException

时间:2013-07-09 17:34:06

标签: objective-c xcode nsmutablearray nsrangeexception

我正在iOS应用程序中编写搜索栏逻辑。我有1个NSArray“结果”,其中包含从NSFetchRequest返回的实体,以及一个空的NSMutableArray“resultados”,我想在其中添加从第一个数组返回的对象。

以下是代码:

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString{

    [self.resultados removeAllObjects];

    NSFetchRequest *request = [NSFetchRequest alloc];
    request.predicate = [NSPredicate predicateWithFormat:@"numero contains [cd] %@",searchString];
    request.entity = [NSEntityDescription entityForName:@"Plaza" inManagedObjectContext:self.contexto];
    NSSortDescriptor *ordenPorNumero = [[NSSortDescriptor alloc]initWithKey:@"numero" ascending:YES];
    [request setSortDescriptors:[[NSArray alloc]initWithObjects:ordenPorNumero, nil]];

    NSError *error = nil;
    NSArray *results = [self.contexto executeFetchRequest:request error:&error];

    if(error){
        NSLog(@"Ha ocurrido un error: %@ %@",error,[error userInfo]);
        abort();
    }

    [self.resultados addObjectsFromArray:results];

    return YES;

}

每次执行此行:

[self.resultados addObjectsFromArray:results];

我得到以下异常:

2013-07-09 19:21:18.142 Actividad1[2347:c07] *** Terminating app due to uncaught exception NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 9 beyond bounds [0 .. 0]

我无法理解如何使用addObjectsFromArray方法超越任何数组范围。事实上,如果我将以下调试代码替换为基本上相同的调试代码,我可以看到我正在添加所有对象,但是在添加最后一个时总是抛出异常,无论结果返回多少个对象:

int num =0;
for(id i in results){
    Plaza *p = i;
    NSLog(@"%d - %@",num,p.numero);
    num++;
    [self.resultados addObject:i];
}

我尝试了很多变化,但我不知道发生了什么。

提前感谢您的帮助。

0 个答案:

没有答案