2014-04-07 1 views
-1

возникли проблемы со следующим кусочке кода: У меня есть этот LeavemanagementViewController.mUITableView границы Нагрузочный приложение 'NSRangeException' - [__ NSArrayM objectAtIndex]: индекс 2 за пределами [0 .. 1]

я извлекая и загрузка данных из xml с сервера. общее количество элементов зависит от массива.

-(void)RejectActionPressed:(id)sender 
{ 
if ([approve1role.text isEqualToString:datarole.text]) 
{ 
    UIButton *buttn2=(UIButton*)sender; 
    NSLog(@"bttn.tag==%i",buttn2.tag); 

    StudentClass *student = (StudentClass *) [arrayitems objectAtIndex:buttn2.tag]; 
    NSLog(@"student name= %@ \n leavecode %@ \n joining dat=%@",student.employeeName,student.leavecode,student.joiningdate); 

    UIAlertView *alert1 = [[UIAlertView alloc] initWithTitle:@"Alert" message:@" " delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Ok", nil]; 
    alert1.tag = buttn2.tag; 
    alert1.tag = kAlertViewTwo; CGRect frame = CGRectMake(14, 45, 255, 23); 
    remarkstext = [[UITextField alloc] initWithFrame:frame]; 
    remarkstext.placeholder = @"Name"; 
    remarkstext.backgroundColor = [UIColor whiteColor]; 
    remarkstext.autocorrectionType = UITextAutocorrectionTypeDefault; 
    remarkstext.keyboardType = UIKeyboardTypeAlphabet; 
    remarkstext.returnKeyType = UIReturnKeyDone; 
    remarkstext.clearButtonMode = UITextFieldViewModeWhileEditing; 
    [alert1 addSubview:remarkstext]; 
    [alert1 show]; 
} 
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
    { 
if(alertView.tag == kAlertViewOne) 
{ 
    if (buttonIndex==1) 
     { 
     NSLog(@"%@",remarkstext.text); 
     remarksoutput.text = remarkstext.text; 
     NSLog(@" The Alertview%@",remarksoutput.text); 
      [self callWebservice:alertView.tag]; 
     } 
    else if (buttonIndex==0) 
     { 
     NSLog(@"cancel"); 
     } 
    } 
if(alertView.tag == kAlertViewTwo) 
{ 
    if (buttonIndex==1) 
    { 
     NSLog(@"%@",remarkstext.text); 

     remarksoutput.text = remarkstext.text; 
     NSLog(@" The Alertview%@",remarksoutput.text); 
     [self callRejectWebservice:alertView.tag]; 
    } 
    else if (buttonIndex==0) 
    { 
     NSLog(@"cancel"); 
    } 
} 
    } 

    -(void)callRejectWebservice:(int)tag 
    { 
    if ([approve1role.text isEqualToString:datarole.text]) 
{ 
    StudentClass *student = (StudentClass *) [arrayitems objectAtIndex:tag]; // Here is my error *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 2 beyond bounds [0 .. 1]'   
    NSLog(@"student name= %@ \n leavecode %@ \n joining dat=%@",student.employeeName,student.leavecode,student.joiningdate); 
} 
if ([approve2role.text isEqualToString:datarole.text]) 
{ 

    StudentClass *student = (StudentClass *) [arrayitems objectAtIndex:tag]; 
    NSLog(@"student name= %@ \n leavecode %@ \n joining dat=%@",student.employeeName,student.leavecode,student.joiningdate); 

} 
if ([approve3role.text isEqualToString:datarole.text]) 
{ 
    StudentClass *student = (StudentClass *) [arrayitems objectAtIndex:tag]; 
    NSLog(@"student name= %@ \n leavecode %@ \n joining dat=%@",student.employeeName,student.leavecode,student.joiningdate); 

} 
} 

Пожалуйста, помогите мне в этом.

ответ

0

Попробуйте

StudentClass *student = (StudentClass *) [arrayitems objectAtIndex:tag-1]; 
+0

Если бы я добавил вышеприведенный код, индекс indexpath будет показывать значение значения indexpath 1. –

+0

Вы хотели бы рассказать мне, что такое значение Button2.tag –

+0

Я добавил кнопку в tablecell // Создал кнопку и добавлял ее в ячейку - Кнопка отклонений UIButton * button2 = [UIButton buttonWithType: UIButtonTypeRoundedRect]; button2.tag = indexPath.row; [button2 addTarget: self action: @selector (RejectActionPressed :) forControlEvents: UIControlEventTouchDown]; button2.frame = CGRectMake (720.0f, 85.0f, 100.0f, 25.0f); [cell addSubview: button2]; –

0

Это выглядит как общий массив из вопроса границ.

Вы имеете массив из двух элементов и пытаетесь обратиться к третьему элементу, который не присутствует в даного ниже

StudentClass *student = (StudentClass *) [arrayitems objectAtIndex:buttn2.tag]; 

Просто распечатайте массив, вы будете иметь лучшее понимание ошибки

NSLog(@"Array =%@",arrayitems); //to debug 
+0

счетчик массива равен 2 утра, получая значение массива. Мне нужно значение, равное indexpath - (void) callRejectWebservice: (int) tag в этом условии –

+0

Количество массивов 2 означает, что «массив имеет два массива элементов [0], массив [ 1]». Вы ссылаетесь на массив [2], которого нет. Так что он дает ошибку. – Dili

+0

Можете ли вы указать в приведенном выше коде в своих комментариях. поэтому дайте мне знать, где я ошибаюсь. –

Смежные вопросы

 Смежные вопросы