2012-03-12 3 views
0

Я новичок в этом поле, и я столкнулся с этой проблемой, которая гласит: [NSMutableArray objectAtIndex:]: индекс 4 за пределами границ [0 .. 3]. Кажется, не могу найти ошибку. Может ли кто-нибудь помочь мне в этом отношении? Я прилагаю фрагмент кода для этого ...Индекс 4 за пределами NSArray

NSMutableArray *my_arrUserinfo = [UserresponcePerser userdesc]; 
NSString *[email protected]""; 
encryptAlgo = [encryptAlgo stringByAppendingString:[[my_arrUserinfo objectAtIndex:9]objectAtIndex:4]]; 

UserresponcePerser является Perser, который Pērses элементы данных из веб-службы и сохраняет его в массиве.

+1

Я голосую, чтобы закрыть это как слишком локализованное, потому что он никому не нужен. Ошибка массива вне границ слишком проста, чтобы быть на SO. – jrturton

+0

Этот вопрос и ответ были полезны для меня. Ошибка произошла во время выполнения в моей ситуации, что затрудняет отладку. Были очень маленькие намеки. Этот вопрос подтвердил чувство кишки. –

+0

«Ошибка решетки из-за пределов слишком проста, чтобы быть на SO». Полностью не согласен. – funroll

ответ

1

Сообщение об ошибке означает, что ваш [my_arrUserinfo objectAtIndex:9] имеет только 3 элемента, но вы пытаетесь посетить 4-й объект.

+0

Пожалуйста, прочтите код. Он пытается получить доступ к четвертому объекту из массива [my_arrUserinfo objectAtIndex: 9]. –

+0

Это именно то, что сказал Фернандо. «[Массив, перенастроенный] [my_arrUserinfo objectAtIndex: 9] имеет только 3 элемента, но вы пытаетесь выполнить vibist 4-го объекта». – tarmes

1

Это означает, что для индекса нет элемента. Индекс объекта подсчитывается начиная с 0, поэтому четвертый объект будет в индексе 3, третий будет равен 2, второй - 1 и так далее.

0

проверьте, сколько данных содержится в вашем «my_arrUserinfo». и для КАЖДОГО объекта в «my_arrUserinfo», проверьте также количество их данных. в вашем сообщении об ошибке кажется, что ваш объект с индексом x недоступен в вашем содержимом массива.

NSLog(@"count my_arrUserinfo = %d", [my_arrUserinfo count]); 

for(int i = 0; i < [my_arrUserinfo count] i++){ 
    NSLog(@"count of objectAtIndex %d inside my_arrUserinfo = %d", i ,[[my_arrUserinfo objectAtIndex:i] count]); 
} 
Смежные вопросы