Поток одной полученной программы:SIGKILL, только в симуляторе 4.3
Вопрос
Когда я использую симулятор 5.0, я вообще не получаю никаких ошибок.
Когда я использую симулятор 4.3, я получаю следующее сообщение, когда останавливаю выполнение приложения в Xcode с помощью кнопки "Стоп".
По сути, я просматриваю свою программу и запускаю представление с помощью uiwebview, в консоли появляется следующее:
Присоединение к процессу 13343.[Переключение на процесс 13343, поток 0x2103]
Я продолжаю использовать приложение, и только когда я останавливаю выполнение, я получаю следующее сообщение об ошибке:
Поток одной полученной программы:СИГКИЛЛ
Я думаю, проблема в том, что был открыт другой поток, когда он требует взаимодействия с пользователем из uiwebview.И затем, когда я отправляю сообщение об уничтожении, первый поток получает sigkill и жалуется на ошибку.
Если я загружаю тот же вид без uiwebview, я вообще не получаю сообщение об ошибке.
И когда я использую симулятор 5.0, я вообще не получаю это сообщение об ошибке при загрузке uiwebview.
Я видел аналогичное поведение с uitextview.
Это то, о чем я должен беспокоиться?Кажется, это не проблема при работе на реальном оборудовании.
Есть ли способ, которым я могу переключиться обратно на thread one после того, как я нажму на другое представление и закончу с uiwebview?
Решение
SIGKILL отправляется операционной системой любому приложению, чтобы сообщить ему прекратить то, что оно запускает, и удалить свои процессы.SIGKILL - это не ошибка с вашей стороны и не ошибка симулятора, это то, что происходит, когда вы нажимаете кнопку home и завершаете работу приложения в панели многозадачности или нажимаете кнопку stop в Xcode.Итак, повторяю, не думайте, что это ваша вина, просто симулятор иногда выходит из себя.(Например, однажды я перевел устройство в режим отладки, перезапустил свое устройство и получил около 300 строк двоичного файла в журнале, это было жутко!)
PS (хотя я СИЛЬНО сомневаюсь, что у вас возникла эта проблема:SIGKILL также может быть отправлен в случаях, когда ваше приложение использует слишком много памяти, что может вызвать исключение или EXC_BAD_ACCESS в зависимости от того, как вам удалось это сделать, но опять же, крайне маловероятно).