Отмена вызова, поскольку блокировка malloc удерживается, поэтому вызов времени выполнения небезопасен - в iOS - PullRequest
2 голосов
/ 18 декабря 2011

Когда я конвертировал char * в NSString в моем приложении, я получил эту странную ошибку:

Отмена вызова, поскольку блокировка malloc удерживается, поэтому вызов времени выполнения небезопасен

GDB дал мне следующую информацию.

Отмена вызова, поскольку блокировка malloc удерживается, поэтому вызов времени выполнения небезопасен. Выполните команду: отключить режим objc-non-blocking отменить эту проверку, если вы уверены, что ваш вызов не использует библиотеки malloc или среду выполнения ObjC.

Почему это происходит?

Код, который я использовал здесь:

objcResponse.desc = [NSString stringWithCString:info->desc encoding:NSUTF8StringEncoding];

objCResponse - это объект Objective C, а информация - это объект (класс) C ++.

Другая информация:

Я использую NSOperationQueue в своем приложении для звонков в веб-службу SOAP. Я также получаю сообщение об ошибке ниже, если я использовал этот код:

 char *value = info->desc;
    objcResponse.desc = [NSString stringWithCString:value encoding:NSUTF8StringEncoding];

Попытка создать переменную USE_BLOCK_IN_FRAME с блоком, который не находится в кадре.

1 Ответ

0 голосов
/ 19 декабря 2011

Я узнал, что проблема возникла из-за того, что info-> desc имеет значение NULL.

Я проверил NULL и преобразовал их непосредственно в NSString, только если info-> desc не равенв NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...