2009-05-25 3 views
2

Я, будучи зарегистрированным разработчиком программы для разработчиков iPhone, получил сообщение от Apple, предлагая сделать все приложения совместимыми с iPhone os 3.0. Было сказано, что они не будут обрабатывать приложения, которые несовместимы с iPhone os 3.0Разработка как для iPhone os 2.2.1, так и для iPhone os 3.0

Проблема в том, что если я изменю код для работы с iPhone os 3.0, он не будет работать на 2.2.1.

Например 2.2.1 SDK не поддерживает следующие, является необходимость в SDK 3.0:

cell.textLabel.text = @"text"; 

В 2.2.1 Я хотел бы написать вместо:

cell.text = @"text"; 

И это не единственный вопрос.

Как вы справляетесь с этой проблемой?

Заранее спасибо.

ответ

3

Не нарушая никаких НДА. Достаточно сказать, что, поскольку большинство приложений, находящихся в настоящее время в магазине, настроенном на целевой 2.0/2.2.1, также будут работать под 3.0 ... Вы поймете, что даже если могут быть API, которые в конечном итоге будут устаревшими, это не означает, что фактически устарели только сейчас. Это означает, что при запуске приложений, специально предназначенных для 3.0, вы должны прекратить их использовать. Тем временем вы хотите продолжить строительство для версии 2.2.1, как если бы вы не слышали об 3.0. Вы просто захотите протестировать свое приложение на 3.0, но если вы не делаете что-то странное, у вас не должно быть никаких проблем.

+1

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

2

Не вдаваясь в подробности об ОС 3.0 из-за NDA;

Вы должны проверить this SO question and answer. В нем показано, как различать ОС.

EDIT: Я согласен с Франсуа П.

1

Я бы, наверное, просто обернуть каждый из этих случаев в условном на основе [[UIDevice CurrentDevice] SystemVersion], которая будет NSString вида «1.2» «2.0» или «3.0».

Если в вашем коде имеется множество экземпляров, проведите абстрагирование по методу или увеличьте класс-нарушитель с помощью категории.

Смежные вопросы