проблема совместимости с iPhone 4.0 - PullRequest
1 голос
/ 24 июля 2010

Я разработал одно приложение для iPhone, которое хорошо работает в iphone 3.0.

В то время как я делаю сопоставимость с 4.0, это дает некоторые устаревшие работы.

Пожалуйста, найдите код ниже .....

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

Примечание: в 3.0 это нормально работает, но в 4.0 * 1008 выдается предупреждение.

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

Примечание: это отлично работает в 4.0, но совсем не работает в 3.0.

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

Пожалуйста, помогите мне в этом вопросе.

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

Ответы [ 2 ]

2 голосов
/ 24 июля 2010

У вас есть два основных варианта:

  1. , если вы используете setStatusBarHidden:animated: в 4.0, это будет работать. Это устарело, что означает, что вы должны избегать этого, но оно все равно будет работать - на данный момент .

  2. Проверьте во время выполнения, какой вариант является лучшим:

if ([UIApplication instancesRespondToSelector:@selector(setStatusBarHidden:withAnimation:)]) {
    // use 4.0 method
} else {
    // use 3.0 method
}
1 голос
/ 24 июля 2010

Популярный способ решения таких проблем - использование метода instancesRespondToSelector, чтобы проверить, на какой версии вы работаете.Существует также возможность использовать директиву прекомпилятора, но Apple рекомендует использовать интроспекцию.

Так что проверьте, отвечает ли объект UIApplication на setStatusBarHidden: селектор анимации Nd выполняет код 4.0, в противном случае вызывает код 3.0.

...