Я экспериментировал с моим приложением в симуляторе ios, когда обнаружил, что оно генерирует сигнал SIGKILL, когда я удаляю его из панели многозадачности, а затем снова запускаю его.(Я делаю это, останавливая приложение, запуская другое приложение, затем удаляя первое приложение из панели многозадачности и перезапуская его.)
Я подумал, что это может быть связано с моим последним экспериментом, добавив Core Data,но после попытки упростить условия, похоже, что это происходит с каждым приложением, с которым я тестирую.
Код останавливается в отладчике в точке, указанной моим комментарием:
#import <UIKit/UIKit.h>
int main(int argc, char *argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil); //<- STOPS with SIGKILL here
[pool release];
return retVal;
}
Я также обнаружил, что он останавливается, как будто это точка останова.Я нажимаю кнопку продолжения, и она возобновляется, как будто ничего не произошло.Я поставил реальную точку останова на отмеченной линии, и она остановилась там.Нажатие кнопки «Продолжить» позволяет программе возобновить работу без появления сигнала SIGKILL.
Я пробовал это с базовой программой-шаблоном для Core Data, без моих собственных модификаций, и сигнал появляется.Я пробовал это с другими программами, которые не используют Core Data, и сигнал появляется.Я попробовал это сделать, когда программа уже загружена, но не отлажена, и программа ведет себя правильно, даже если проблема возникает во время отладки.
Конечно, SIGKILL не выдает никаких сообщений об ошибках, которые могут помочь.
Кто-нибудь знает, что происходит?Это не похоже на реальную проблему, но я хочу убедиться, что понимаю ее.
Я использую XCODE4.