NSException брошено на uialert - PullRequest
       25

NSException брошено на uialert

1 голос
/ 23 апреля 2020

У меня есть приложение ios, которое выдает предупреждение, когда дается код ошибки.

код такой.

NSString *errorMessage = [[json valueForKey:@"message"] stringByRemovingPercentEncoding];
    if(errorMessage == nil)
        errorMessage = [NSString stringWithFormat:@"Error Code : %@", [json valueForKey:@"code"]];
    UIAlertController *alertView = [UIAlertController alertControllerWithTitle:errorMessage message:nil preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *yesButton = [UIAlertAction actionWithTitle:@"확인" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
        [alertView dismissViewControllerAnimated:YES completion:nil];
    }];
    [alertView addAction:yesButton];
    [self presentViewController:alertView animated:YES completion:nil];
    return nil;

Но оно продолжает давать мне

2020-04-23 17: 06: 49.247744 + 0900 timekeeper [64197: 20858252] * Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Модификации механизма компоновки не должны выполняться из фонового потока после обращения к нему из основного потока. * Первый бросок стека вызовов: (0x19e8f496 c 0x19e60d028 0x19ede05e0 0x19ebcf828 0x1a2dce250 0x1a2dcf648 0x1a2027d74 0x1a20234b8 0x1a202372 c 0x1a2023a6 c 0x1a2028630 0x1a2028474 0x1a2009364 0x1a23b0a1 c 0x1a23b1104 0x1a23c7214 0x1a23bfd08 0x1a23c175 c 0x1a23c3d0 c 0x1a23c4270 0x1a23c3c58 0x1a23c3ee c 0x1023b2924 0x1023b1028 0x19ebadfa4 0x19ece9a74 0x19e5fd840 0x19e6059f4) libc ++ abi.dylib: завершается с неисключительным исключением типа NSException

ошибка

В чем проблема? Он работал нормально несколько дней go.

1 Ответ

0 голосов
/ 23 апреля 2020

Вам необходимо представить UIAlertController в потоке main.

Примерно так:

dispatch_async(dispatch_get_main_queue(), ^{
    [self presentViewController:alertView animated:YES completion:nil];
});

Надеюсь, это поможет

...