Tri*_*Man 27 uialertview ios ios8 uialertcontroller
我想要符合iOS 8中使用的UIAlertController,因为现在不推荐使用UIAlertView.有没有办法在不破坏对iOS 7的支持的情况下使用它?是否有某种if条件我可以检查iOS 8,否则为iOS 7支持做其他事情?
Erw*_*wan 99
我认为检查类是否存在(从iOS 4.2开始)的更好方法是:
if([ClassToBeChecked class]) {
// use it
} else {
// use alternative
}
Run Code Online (Sandbox Code Playgroud)
在你的情况下,那将是:
if ([UIAlertController class]) {
// use UIAlertController
} else {
// use UIAlertView
}
Run Code Online (Sandbox Code Playgroud)
goc*_*oce 12
目标C(如上所述)
if ([UIAlertController class]) {
// use UIAlertController
} else {
// use UIAlertView
}
Run Code Online (Sandbox Code Playgroud)
迅速
if objc_getClass("UIAlertController") == nil {
// use UIAlertView
} else {
// use UIAlertController
}
Run Code Online (Sandbox Code Playgroud)
不要使用if NSClassFromString("UIAlertController") == nil它不起作用,因为此方法的签名是func NSClassFromString(_ aClassName: String!) -> AnyClass!
请参阅Erwan的答案(在我的答案下方),因为我认为这是最好的。
--
您可以检查 iOS 版本以使用适当的控件,如下所示:
if (([[[UIDevice currentDevice] systemVersion] compare:@"8.0" options:NSNumericSearch] == NSOrderedAscending)) {
// use UIAlertView
}
else {
// use UIAlertController
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18580 次 |
| 最近记录: |