2016-09-06 6 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

이 오류는 시도 의미 배열에서 요소를 하나의 인덱스로 가져오고 범위를 벗어납니다.

아마 문제는 다음과 같습니다 배열 그것에서 읽기 전에 몇 가지 요소가

[FavTablename objectAtIndex:indexPath.row] 

확인합니다.

가 문제의 확인이 예외 중단 점을 수있을하려면 : numberofrows이 배열 카운트 값보다 큰 계산하기 때문에

enter image description here

+0

에는 12 요소가 있습니다 – seggy

+0

@seggy 예외 브레이크 포인트가 활성화되도록 –

+0

ohk 내가 예외 예외를 사용하여 중단 점을 사용하려고 시도합니다 – seggy

0

당신이 말한대로 FavTitleFavtablename은 같은 수의 요소를 가지고 있습니다. 따라서 다음과 같이 에 예외 처리를 시도하십시오. -

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