Тема одной полученной программы: SIGKILL, только в Симуляторе 4.3

Когда я использую симулятор 5.0, я вообще не получаю никаких ошибок.

Когда я использую симулятор 4.3, я получаю следующее сообщение, когда останавливаю выполнение приложения в Xcode с помощью кнопки остановки.

По сути, я просматриваю свою программу и запускаю представление с uiwebview, в консоли появляется следующее:

Присоединение к процессу 13343. [Переключение на процесс 13343 thread 0x2103]

Я продолжаю использовать приложение, и только когда я останавливаю выполнение, я получаю следующее сообщение об ошибке:

Поток одной полученной программы: SIGKILL

Я думаю, проблема в том, что был открыт другой поток, когда он требует взаимодействия с пользователем из uiwebview. И затем, когда я отправляю сообщение об уничтожении, первый поток получает sigkill и жалуется на ошибку.

Если я загружаю то же представление без uiwebview, я вообще не получаю сообщение об ошибке.

И когда я использую симулятор 5.0, я вообще не получаю это сообщение об ошибке при загрузке uiwebview.

Я видел подобное поведение с uitextview.

Это то, о чем я должен беспокоиться? Это не кажется проблемой при работе на реальном оборудовании.

Есть ли способ вернуться к первому потоку после того, как я нажму на другой вид и закончу работу с uiwebview?


person Matt    schedule 04.12.2011    source источник


Ответы (1)


SIGKILL отправляется операционной системой любому приложению, чтобы сообщить ему, что оно должно завершить работу и удалить свои процессы. SIGKILL — это не ошибка с вашей стороны и не ошибка симулятора, это то, что происходит, когда вы нажимаете кнопку «Домой» и убиваете приложение в ящике многозадачности или нажимаете кнопку «Стоп» в Xcode. Так что повторюсь, не думайте, что это ваша вина, просто симулятор иногда сходит с ума. (Как однажды, я оставил устройство в режиме отладки и перезапустил свое устройство, и в журнале появилось около 300 строк двоичного кода, это было жутко!)

PS (хотя я ОЧЕНЬ сомневаюсь, что у вас есть эта проблема: SIGKILL также может быть отправлен в тех случаях, когда ваше приложение использует слишком много памяти, что может вызвать исключение или EXC_BAD_ACCESS в зависимости от того, как вам удалось это сделать, но опять же, очень навряд ли).

person CodaFi    schedule 04.12.2011
comment
Но почему я вижу это только в симуляторе 4.3, а не в симуляторе 5.0? Вот почему я беспокоюсь, но, возможно, мне не следует беспокоиться. - person Matt; 04.12.2011
comment
Вы не должны быть. Как я уже сказал, иногда отладчик не отвечает так быстро, как должен, поэтому он интерпретирует SIGKILL как исключение и показывает ошибочную строку кода. Не волнуйтесь, опять же, это совершенно не ваша вина. Симуляторы постоянно ведут себя странно. - person CodaFi; 04.12.2011