Domanda

Sto usando il seguente codice per catturare un errore quando ind.row non è un valore valido o talvolta diventa zero

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


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

    }   

Ma quando questo codice esegue a volte questo errore si sta verificando

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

Quale potrebbe essere la ragione di questo errore e perché l'eccezione non viene gestita

È stato utile?

Soluzione 3

In realtà stava già catturando le eccezioni ... Avevo impostato la bandiera sulle eccezioni di OBJC. Quando ho rimosso che catturava le eccezioni .... Come sottolineato da @Stilescrisis il valore Ind era nullo al momento di questa eccezione. .Sorry per il trble

Altri suggerimenti

Le affermazioni in iOS non lanciano eccezioni, quindi non puoi prenderle.

Avrai bisogno di capire cosa c'è che non va nella tua chiamata a -row. La mia prima ipotesi sarebbe che "Ind" sia già liberato o qualcosa del genere.

Dovrai controllare l'indice, generare e aumentare un'eccezione sul tuo proprietario:Riferimento della classe Nsexception

+ (void)raise:(NSString *)name format:(NSString *)format, ...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top