使用Swift测试UIApplicationOpenSettingsURLString的存在

Tsu*_*esu 12 ios ios7 swift

在iOS 8上,Apple允许我们使用Constant UIApplicationOpenSettingsURLString从我们的应用程序转到App Settings

UIApplication.sharedApplication().openURL(NSURL.URLWithString(UIApplicationOpenSettingsURLString))

有一个代码可以测试iOS 7上是否存在此常量,但它使用了ObjC和pointes.Apple在他们的代码上做了这个:https://developer.apple.com/library/ios/samplecode/AppPrefs/Listings/RootViewController_m.html

我如何使用Swift制作这样的东西?

Kel*_*ler 22

在Swift中:

switch UIDevice.currentDevice().systemVersion.compare("8.0.0", options: NSStringCompareOptions.NumericSearch) {
  case .OrderedSame, .OrderedDescending:
    UIApplication.sharedApplication().openURL(NSURL.URLWithString(UIApplicationOpenSettingsURLString))
  case .OrderedAscending:
    //Do Nothing.
}
Run Code Online (Sandbox Code Playgroud)

在Objective-C中:

if (&UIApplicationOpenSettingsURLString != NULL) {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}
Run Code Online (Sandbox Code Playgroud)

  • "if(&UIApplicationOpenSettingsURLString!= NULL)"在Xcode 6.3中给出错误,因为它始终为true.(而且是问题)相反,使用"if(UIApplicationOpenSettingsURLString!= nil)". (10认同)