ObjC ++ не перехватывает исключения по ссылке?

Я использую следующий код в классе обертки ObjC ++ (.mm), и я замечаю, что если я поймаю по ссылке, код будет случайным образом с EXC_BAD_ACCESS. С другой стороны, если я поймаю объект («std :: runtime_error 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]; }); 

One Solution collect form web for “ObjC ++ не перехватывает исключения по ссылке?”

ObjC ++ должен понимать ссылки на C ++.

Проблема в том, что ваша программа асинхронно считывает память другого потока. Насколько мне известно, этот поток вышел из него и его память стека вместе с ним, или память стека была перезаписана по мере продолжения выполнения потока – таким образом, EXC_BAD_ACCESS (как одно из возможных объяснений).

  • Раскадровка - автоматическая термоусадка UILabel не работает
  • <Приложение> имеет активные утверждения за пределами допустимого времени - только iPhone 5S, отлично подходит для iPhone 5, 4 и 4
  • Сбой приложения сразу после запуска
  • Количество страниц UICollectionView с пейджингом в iOS
  • Можно ли настроить базовую линию в NSAttributedString?
  • Номера контактных номеров iOS 7 не являются пробелами
  • бета iOS6 и продолжение разработки
  • Импорт iOS 6 SDK в Xcode 4.2 на Snow Leopard
  • Ограничение отслеживания объявлений и объявлений
  • iPhone приложение - первоначальная невосприимчивость к iOS 6 на iPad
  • Список строк UITableView, которые не выбраны
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.