如何检查某项功能在特定 iOS 版本上是否可用?
在我的 AppDelegate 中,我使用外观代理来制作自定义 UI:
//Setup custom appearances
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"header"] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setTintColor:[UIColor blackColor]];
[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"header"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
这将在 iOS4 中崩溃。如何检查此功能在他们运行的 iOS 版本上是否可用,以便避免崩溃?
In my AppDelegate I am using the appearance proxy to make custom UI:
//Setup custom appearances
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"header"] forBarMetrics:UIBarMetricsDefault];
[[UINavigationBar appearance] setTintColor:[UIColor blackColor]];
[[UIToolbar appearance] setBackgroundImage:[UIImage imageNamed:@"header"] forToolbarPosition:UIToolbarPositionAny barMetrics:UIBarMetricsDefault];
This will crash in iOS4. How can I check if this feature is available on the iOS version they are running, so I can avoid the crash?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不要检查操作系统,检查该功能是否存在。
if ([[UINavigationBar 类] respondsToSelector:@selector(appearance)]) {}
Don't check the OS, check if the capability exists.
if ([[UINavigationBar class] respondsToSelector:@selector(appearance)]) {}
试试这个:
Try this: