2016-09-06 6 views
-2

Ошибка:Какова ошибка «Прекращение приложения»?

* Нагрузочный приложение из-за неперехваченного исключением 'NSRangeException', причина: '* - [__ NSArrayM objectAtIndex]: индекс 1 за пределами [0 .. 0]

Вот мой код:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *simpleTableIdentifier = @"AartiTableViewCell"; 
    AartiTableViewCell *cell = (AartiTableViewCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier]; 
    if (cell == nil) 
    { 
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"AartiTableViewCell" owner:self options:nil]; 
     cell = [nib objectAtIndex:0]; 
     cell.btnFav.userInteractionEnabled=YES;    
    } 

    NSString *strfavarry = [NSString stringWithFormat:@"SELECT Title FROM %@ WHERE identifire='%@'",[FavTablename objectAtIndex:indexPath.row],[FavIdent objectAtIndex:indexPath.row]]; 
    FavTitle = [FavData lookupAllForSQL:strfavarry]; 

    cell.selectionStyle=UITableViewCellSelectionStyleNone; 
    cell.index = indexPath.row; 
    cell.btnFav.tag=indexPath.row; 
    [cell.btnFav setBackgroundImage:[UIImage imageNamed:@"unfav.png"] forState:UIControlStateNormal]; 
    [cell.btnFav addTarget:self action:@selector(handleFavouriteButton:) forControlEvents:UIControlEventTouchUpInside];   
    cell.lbltitle.text=[FavTitle objectAtIndex:indexPath.row]; 

    return cell; 
} 
+0

С какими ошибками у вас возникли проблемы? Отладчик покажет точное место, где проблема. –

+0

из-за индекса 1 за пределами границ [0 .. 0] – seggy

+0

где заполнить массив FavTablename и FavIdent, потому что этот массив может быть меньше значения вашего числа числовых чисел. –

ответ

0
NSString *strfavarry = [NSString stringWithFormat:@"SELECT Title FROM %@ WHERE identifire='%@'",[FavTablename objectAtIndex:indexPath.row],[FavIdent objectAtIndex:indexPath.row]]; 

Эта линия получает ошибку, потому что ваши numberofrows рассчитывать больше, чем эти счета массив значения.

проверьте количество кол-во номеров и FavTablename и FavIdent Счетчик массива такой же или нет.

+0

да я буду проверять оба массива одинаковыми @Pooja Srivastava – seggy

0

Эта ошибка означает, что вы попробуйте чтобы получить элемент из массива в индексе 1, и вы выходите за пределы.

Возможно проблема:

[FavTablename objectAtIndex:indexPath.row] 

проверить, если ваш массив имеет некоторые элементы, прежде чем читать из него.

Чтобы быть уверенным в вашей проблемы включить точку останова исключение:

enter image description here

+0

в имя_таблицах есть 12 элемента – seggy

+0

@seggy позволяет исключение точки останова, так –

+0

ОКА я постараюсь с помощью добавить исключение останова – seggy

0

Как вы сказали, FavTitle и Favtablename имеют одинаковое количество элементов. Поэтому постарайтесь применить обработку исключений в cellForRowAtIndexPath следующим образом: -

if(FavTitle.count > indexPath.row){ 
     cell.lbltitle.text=[FavTitle objectAtIndex:indexPath.row]; 
    }