live13 (live13) wrote,
live13
live13

Это не жизнь или удивительные приключения в стране Apple разработки


Не так давно столкнулся с тем что перестали компилироваться проект под iPhone. После того как я в дополнение к iPad добавил в проект графику под iPhone 3G и 4G. Чего только не прочитал на форумах. Но ошибка 1 от компилятора GCC 4.2 никуда не девалась. Поступил просто. Заменил его в настройках проекта на LLVM GCC 4.2 и все заработало.

И вот захотелось сделать на основе проекта еще одну демку. Похожую настолько, что я просто скопировал проект и решил добавить к нему несколько классов. Откомпилировал, запустил. И получил полный бред в отладчике.
Previous frame inner to this frame (gdb could not unwind past this frame)
Вот такое веселое сообщение. Почитал форумы. А там вообще не советуют использовать LLVM GCC 4.2 для отладки. Вернулся на GCC 4.2. Снова ошибка 1 Так и написано. Компилятор совершил ошибку и вышел с ошибкой 1!
Причем в новом проекте уже в двух файлах.
Что же в них было общего? Оказалось вот что.
Для определения устройства, на котором запущено приложение я использовал такой макрос

#ifdef UI_USER_INTERFACE_IDIOM()
#define IS_IPAD() (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
#else
#define IS_IPAD() (false)
#endif


А там где нужно было загружать много графики просто завернул две здоровые ветки кода в такую конструкцию

if (IS_IPAD())
{
Ipad код
}
else
{
другой код
}


И вот эта конструкция стала компилятору поперек горла.
Заменил код на простую установку флага Ipad/не Ipad и подставил ее вместо макроса. Заработало.
В общем с проблемой я своей разобрался. Но почему нельзя было написать об этом в ошибке - для меня не понятно. И вот так с Apple на каждом шагу. Они никогда не пишут о своей продукции ничего плохого. Везде только положительная информация. Просто если что-то не работает - то уже конкретно не работает.
Tags: ipad, ipod, mac, programming, забавное
Subscribe

promo live13 may 11, 2014 17:58 46
Buy for 50 tokens
Примерно неделю назад я писал, что заинтересовался этой online-книжкой http://gameprogrammingpatterns.com/ и решил сделать ее перевод. Сам я мог бы ограничиться и английским вариантом, но думаю многим перевод пригодится. В прошлом я уже занимался переводом книг. Не как основной работой. Так,…
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments