SIGABRTでエラー内容が出ない時の対処法

久しぶりのiPhoneアプリ関連記事です。 エラーで困るものの一つがEXE_BAD_ACCESSで、 もう一つがSIGABRTです。 たいていのSIGABRTはきちんとエラー内容をLogに書いてくれるのですが、なぜかときどき書いてくれない時があります。 そんな時の対処法を見つけたのでメモメモ。 やり方は簡単で、try catchするだけ。 自分は大本のmain関数でtry catchを組み込みました。

1
int main(int argc, char \*argv[]) { @autoreleasepool { @try { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppAppDelegate class])); } @catch (NSException \*exception) { NSLog(@"%@",exception); } } }

これに、NSLogのところにbreakpointをつけることできちんとエラー内容を知ることができました。 エラーが出て原因がわからない・・・というときはためしてみるといいかもしれません。