Я люблю эту ошибку here, но пришел к выводу, что ошибка возникает из-за того, что массив пуст. Однако мой массив не пуст.[__NSArrayM objectAtIndex:]: индекс 517431040 за пределами границ [0 .. 48]
-(void)setNumberInTippfield:(NSNumber *)aNumber{
NSNumber *index = [self.ticket.currentSlip intValue]-1;
NSLog(@"index: %i",index);//prints 0, expected
Slip *slip = [self.slipArray objectAtIndex:index];
NSNumber *number = [NSNumber numberWithInt:[aNumber intValue]-1 ];
NSLog(@"number: %@",number);//prints out number, e.g. 25, as expected
NSMutableArray *tNumberArray = [[NSMutableArray alloc] init];
tNumberArray= [NSMutableArray arrayWithArray:slip.numberArray];
//after this line, debugger tells me the array has 49 objects, as expected
[[tNumberArray objectAtIndex:number] setSelected:YES];//this line throws exception
//this line seems to get executed 3 times, as I can see from the breakpoints
}
после того, что он бросает исключение:
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -
[__NSArrayM objectAtIndex:]: index 517431040 beyond bounds [0 .. 48]'
Я думал, что number
держит адрес вместо значения, но NSLog говорит мне правильное значение. Любые намеки на это? Заранее большое спасибо.
Какой вызов 'objectAtIndex' выбрасывает это исключение? – trojanfoe
Последняя строка, см. Мое редактирование. – dan
Поскольку NSLog выводит значение [описание объекта], а не сам объект. – borrrden