2010-07-24 174 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代码。