Iphone - устаревшие функции ... они сломают iphone? - PullRequest
3 голосов
/ 05 марта 2010

Я имею дело со старым кодом, разработанным для iPhone OS 2.0. В этом коде у меня есть некоторые инструкции, которые мы устарели на iPhone 3.0.

Я не хочу менять версию, потому что у меня много клиентов, особенно на iPod Touch, которые все еще используют 2.0. Если я обновлю инструкции, они не смогут продолжать получать обновления.

Приложение скомпилировано для 2.0 и всегда было таким.

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

Я следовал их инструкциям, но не вижу сбоев, и часть кода, которая использует функцию «устарел», прекрасно работает на 3.1.3.

Компилируя проект для 3.1.3, я вижу на XCode желтое предупреждение о том, что одна инструкция устарела в 3.1.3.

Большой вопрос: будет ли эта инструкция работать на 3.1.3, и я должен игнорировать это предупреждение? Может ли это вызвать падение iPhone?

На мой взгляд, все новые версии iPhone OS сохраняют совместимость со старыми версиями, поэтому, как мне кажется, любое приложение, скомпилированное для 2.0, будет работать на 3.1.3, а все версии будут работать.

Как видите, я проверил это на 3.1.3, и приложение отлично работает.

Как это может быть? Есть идеи?

спасибо за любую помощь.

1 Ответ

2 голосов
/ 05 марта 2010

Устаревшие вызовы предназначены для работы в той версии ОС, в которой они устарели, но перестают работать в некоторых (неопределенных) будущих ОС. Устаревание является предупреждением для разработчиков: эй, вы должны изменить свой код, это сломается в будущем. Это способ обновить API-базу, не нарушая никого.

Таким образом, вы можете использовать эти вызовы прямо сейчас, но вы захотите отредактировать код, если решите отказаться от работоспособности 2.x.

...