Try and CatchはiPhoneの例外を処理するものではありません
-
28-10-2019 - |
質問
ind.rowが有効な値ではない場合、または時々nilになる場合、次のコードを使用してエラーをキャッチしています
@try {
if(ind.row<[[treeNode flattenElements] count])
{
[self.mTableView scrollToRowAtIndexPath:ind atScrollPosition:UITableViewScrollPositionTop animated:YES];
}
}
@catch (NSException *e) {
NSLog(@"%@",e);
}
しかし、このコードが実行されると、このエラーが発生することがあります
Assertion failure in -[NSIndexPath row], /SourceCache/UIKit_Sim/UIKit-1262.60.3/UITableViewSupport.m:1948`
このエラーの理由は何ですか、そして例外が処理されていない理由
解決 3
実際、それはすでに例外をキャッチしていました...私はOBJC例外でフラグストップを設定しました。例外をキャッチすることを削除したとき.... @Stilescrisisが指摘したように、この例外の時点でIND値はヌルでした。 TRBLEのサリー
他のヒント
iOSのアサーションは例外をスローしないため、それらをキャッチすることはできません。
あなたはあなたの呼びかけの何が悪いのかを理解する必要があります -row
. 。私の最初の推測では、「ind」はすでに解放されているか何かです。
インデックスを確認し、自分の例外を生成して提起する必要があります。nsexceptionクラスリファレンス
+ (void)raise:(NSString *)name format:(NSString *)format, ...
所属していません StackOverflow