Question

J'utilise le code suivant pour détecter une erreur lorsque ind.row n'est pas une valeur valide ou parfois il devient nul

@try {
        if(ind.row<[[treeNode flattenElements] count])
        {
            [self.mTableView scrollToRowAtIndexPath:ind atScrollPosition:UITableViewScrollPositionTop animated:YES];
        }


    }
    @catch (NSException *e) {
        NSLog(@"%@",e);

    }   

mais lorsque ce code s'exécute parfois cette erreur se produit

Assertion failure in -[NSIndexPath row], /SourceCache/UIKit_Sim/UIKit-1262.60.3/UITableViewSupport.m:1948`

quelle peut être la raison de cette erreur et pourquoi l'exception n'est pas gérée

Était-ce utile?

La solution 3

en fait, il attrapait déjà les exceptions ... j'avais mis le drapeau stop sur les exceptions objc. quand j'ai supprimé qu'il attrapait les exceptions .... comme l'a souligné @stilesCrisis la valeur ind était nulle au moment decette exception..désolé pour le trble

Autres conseils

Les assertions dans iOS ne lèvent pas d'exceptions, vous ne pouvez donc pas les attraper.

Vous allez devoir découvrir ce qui ne va pas avec votre appel à -row.Ma première hypothèse serait que "ind" est déjà libéré ou quelque chose comme ça.

Vous devrez vérifier l'index, générer et lever une exception vous-même: Référence de classe NSException

+ (void)raise:(NSString *)name format:(NSString *)format, ...
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top