2010-07-24 255 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 2010-07-24 07:01:28

回答

2

你有兩個主要選擇:

  1. 如果您使用4.0 setStatusBarHidden:animated:

    ,它會工作。它已被棄用,這意味着你應該避免它,但它仍然會工作 - 現在

  2. 檢查在運行時哪一個是最好的選擇:

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

是的,我早前使用此代碼, 但問題沒有解決。 – vulvaji 2010-07-24 06:44:41

1

處理這類問題的波普爾的方法是使用「instancesRespondToSelector」的方法來檢查你是哪個版本正在運行。也有可能使用預編譯器指令,但內省是Apple推薦的方式。

因此,檢查UIApplication對象是否響應setStatusBarHidden:withAnimation selector Nd執行4.0代碼,否則調用3.0代碼。