2010-07-24 2 views
1

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

Пока я сравниваю с 4.0, он дает некоторые устаревшие выработки.

Вы можете найти код ниже .....

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

Примечание: это работает отлично в 3.0, но дает предупреждение в 4.0

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

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

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

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

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

+0

Если мой метод не разрешает вашу проблему, вам нужно лучше объяснить проблему. – jtbandes

ответ

2

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

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

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

if ([UIApplication instancesRespondToSelector:@selector(setStatusBarHidden:withAnimation:)]) { 
    // use 4.0 method 
} else { 
    // use 3.0 method 
} 
+0

Да, я использовал этот код раньше, Но проблема не решена. – vulvaji

1

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

Итак, проверьте, отвечает ли объект UIApplication на setStatusBarHidden: withAnimation selector Nd выполняет код 4.0, иначе вызывает код 3.0.