Bezdepbonusu7Программирование: статьи и ответы

Вопрос

IPhone SDK2.0 на устройствах под управлением iPhone OS 3.0

Автор вопроса: TzurОтветов: 3

Простите за длинный пост....

Я пытаюсь понять, является ли поведение моего приложения "нормальным". У меня есть приложение, разработанное для версии 2.0 sdk (т.е. чтобы убедиться, что максимальное количество устройств может запускать его, поскольку я не использую никаких "специальных" функций 3.0, я склонен думать, что наименьший знаменатель должен быть лучшим выбором).

Итак, в Xcode (последняя версия xcode) я удостоверяюсь, что все настроено на API 2.0, включая ссылки на фреймворк. Я собираю, и все отлично работает на устройстве 2.1 (оборудование - iPhone 1 поколения). Теперь я тестирую его на устройстве со старым оборудованием (iPod touch), но с последней версией программного обеспечения 3.0.

Вещь работает нормально, но в некоторых местах я наблюдаю другое поведение, например: 1) анимация панели инструментов не работает 2) вращение ведет себя по-другому (поворот устройства вправо показывает мой экран в зеркальном отображении .. :-) что "круто", но не желаемый

Теперь я уверен, что могу "взломать" и исправить эти проблемы, но что-то просто не имеет для меня смысла, и обычно я знаю, что не понимаю чего-то в полной мере,

ВОПРОС: разве любое устройство, на котором работает что-то, что было скомпилировано с версией 2.0, не должно вести себя точно так же, независимо от его текущей версии программного обеспечения / версии оборудования? Разве это не проблема обратной совместимости? Я ожидал, что устройство 3.0 с программным обеспечением 2.0 будет испытывать тот же поток, что и устройство 2.0 с программным обеспечением 2.0. Что мне не хватает? а где непонимание с моей стороны?

спасибо, -tzurs

  • Кстати. Если кто-то может прокомментировать, какие версии фреймворка они добавляют в мою ситуацию, я был бы благодарен. (то есть добавляете ли вы фреймворки с какого пути, 3.0 или 2.0) Я бы предположил 2.0, но я больше ничего не знаю .. Tzur 01.07.2009
  • Вы всегда должны добавлять из базы, с которой пытаетесь скомпилировать. Самый простой способ - взять текущую структуру, щелкнуть правой кнопкой мыши и отобразить ее в поисковике, а затем перетащить другие, которые вы хотите использовать. Kendall Helmstetter Gelner 01.07.2009

xcodeiphonebuild

Ответы

Ответ 1 · Kendall Helmstetter Gelner

В основном он ведет себя одинаково, но в некоторых случаях (особенно при вращении) он просто немного отличается. У них также могут быть переупорядоченные представления на панели инструментов или панели навигации, поэтому, если вы напрямую управляете подвидами таких вещей, они будут изменены.

Также возможно, что вы полагаетесь на ошибки, существующие в версии 2.0, и если вы сделаете что-то "правильным" способом, у вас не будет проблем с версии 2.0 до 3.0.

В частности, вокруг вращения, если вы используете shouldAutoRotate ... в качестве триггера, чтобы что-то сделать, обратите внимание на использование уведомлений о вращении.

Ответ 2 · Eric Petroelje

разве любое устройство, на котором работает что-то, что было скомпилировано с версией 2.0, не должно вести себя точно так же, независимо от его текущей версии программного обеспечения / версии оборудования? Разве это не проблема обратной совместимости?

Немного иронично, но в мире Microsoft это имело бы смысл. Однако мир Apple традиционно не придает большого значения обратной совместимости. Особенно, когда речь идет о поведении из-за ошибок в предыдущем выпуске или из-за использования вещей способами, для которых они изначально не предназначались.

Ответ 3 · JoePasq

Легче всего увидеть, что изменилось, - это различия или различия. Они публикуются как часть наборов документации для каждого выпуска и показывают, что изменилось, и как реагировать на поддержку различных версий. Также ознакомьтесь с образцом кода Apple о поддержке нескольких версий.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы