2016-09-06 3 views
-2

エラー「App Terminating」というエラーは何ですか?

* '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配列を埋める場所は、配列のnumberofrowsの値が小さいためです。 –

答えて

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

この行はエラーを与えています。

FavTablenameFavIdentの配列数が等しいかどうかをご確認ください。

+0

内のすべての要素をしたいはい私は両方の配列をチェックします同じ@Pooja Srivastava – seggy

0

このエラーは、あなたがしようとしていることインデクス1の配列から要素を取得し、境界外に出ています。

はおそらく問題がある:あなたの配列は、それからの読み込みの前にいくつかの要素を持っている

[FavTablename objectAtIndex:indexPath.row] 

確認してください。例外ブレークポイントを有効にあなたの問題の確認するために

:あなたのnumberofrowsは、これらの配列のカウント値よりも大きいカウントので

enter image description here

+0

は私が「cellForRowAtIndexPath」のうち、このメソッドを使用することができ@Marco Santarossaが動作していない、まだ – seggy

+0

を持っていると私はFavTitle –

+0

を有効@seggy 12要素 – seggy

0

あなたが言ったように、FavTitleFavtablenameは同じ数の要素を持っています。だからcellForRowAtIndexPathに例外処理を入れてみましょう: -

if(FavTitle.count > indexPath.row){ 
     cell.lbltitle.text=[FavTitle objectAtIndex:indexPath.row]; 
    } 
関連する問題