今天,我的应用程序获得批准,但收到用户的电子邮件说它崩溃了。我发现
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationSlide];
是问题所在,因为用户的固件为3.1.x,此API无法正常工作,导致应用崩溃。
所以我用
if ([[[UIDevice currentDevice] systemVersion] floatValue]>=3.2)
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation: UIStatusBarAnimationSlide];
else
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
我的问题...
是我做的最好的解决方案?
为什么在我设置Traget OS固件3.0时XCODE并没有警告我SetStatusBarHidden withAnimation不在3.0中?
我是否必须检查每个API以查看其是否与我的目标操作系统一起使用?
谢谢
最佳答案
我建议您使用以下代码段,而不是对照os的版本,而不是检查选择器当前是否可用。
if([[UIApplication sharedApplication] respondsToSelector:@selector(setStatusBarHidden: withAnimation:)])
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
else
[[UIApplication sharedApplication] setStatusBarHidden:NO animated:YES];