При работе на ipod touch, а не на симуляторе. 'Программа получила сигнал SIGABRT' - PullRequest
0 голосов
/ 27 января 2011

Мое приложение прекрасно работает в симуляторе, но теперь у меня есть лицензия разработчика, и когда я пытаюсь запустить его на своем iPod Touch, xcode говорит: GBD: Program received signal: "SIGABRT".

Что я могу сделать, чтобы выяснить, чтопроблема здесь?При сборке не выдает никаких предупреждений.

РЕДАКТИРОВАТЬ: Извините, я впервые запускаю приложение на устройстве, поэтому, пожалуйста, потерпите меня.Я только что заметил, что в окне «Органайзер» отладчик выдает журнал того, что происходит на устройстве.Так вот в чем проблема:

[UIApplication setStatusBarHidden:withAnimation:]: unrecognized selector sent to instance 0x1160e0

И код, на который он ссылается, находится в (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

Это код, с которым у него проблема:

`if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight) {

    self.view = clockView;
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];
    return YES;


}
if (interfaceOrientation == UIInterfaceOrientationPortrait) {

    self.view = homeView;

    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];

    return YES;
}
if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {

self.view = homeView;[[UIApplication sharedApplication] setStatusBarHidden: НЕТ с анимацией: НЕТ];

    return YES;
}
else {
    return YES;
}

`

Ответы [ 3 ]

3 голосов
/ 27 января 2011

[UIApplication setStatusBarHidden: withAnimation:]: нераспознанный селектор, отправленный экземпляру 0x1160e0

Метод, похоже, не существует на вашем устройстве.Был добавлен на 3.2.Какая версия iOS работает на вашем iPod?Кроме того, второй тип параметра неправильный

Если он ниже и вы хотите его поддержать, вам следует рассмотреть

    if ([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
        [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
    } else {
        [[UIApplication sharedApplication] setStatusBarHidden:NO animated:NO];
    }
1 голос
/ 27 января 2011

Вставьте точку останова в самом начале вашего кода и запустите его в режиме отладки. Используйте отладчик, чтобы построчно проходить по коду и видеть, как далеко продвигается ваш код до появления SIGABRT.

Но настроили ли вы iPod touch в качестве устройства подготовки?

О, только что заметил что-то еще. Я не уверен, что вы отправляете правильные данные в параметр withAnimation. Проверьте документацию:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO]; 

Должно быть что-то вроде:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide]; 
0 голосов
/ 27 января 2011

Когда вы запускаете приложение в режиме отладки, вы можете наблюдать за консолью (Run-> Console).Для большинства сбоев вы получите какое-то сообщение об ошибке, которое укажет вам правильное направление.Кроме того, в представлении отладки вы сможете увидеть стек в момент сбоя приложения (вверху слева от представления отладки в макете по умолчанию в Xcode).Xcode выделит темным текстом методы в стеке, которые принадлежат вашему коду.Это первые подозреваемые.

...