ObjC++ ラッパー クラス (.mm) で次のコードを使用していますが、参照によってキャッチすると、コードが EXC_BAD_ACCESS でランダムに失敗することに気付きました。一方、オブジェクト (「std::runtime_error エラー」) をキャッチすると、問題ないようです。
私は ObjC を初めて使用し、ObjC では参照が使用されないことを知っていますが、この場合、コンパイラが正しく動作することを期待しています。何か不足していますか?
catch(std::runtime_error &error) {
dispatch_async(dispatch_get_main_queue(), ^{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:[NSString stringWithCString:error.what() encoding:[NSString defaultCStringEncoding]]
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
});