"首选项:根=城堡"无法在IOS10中打开iCloud设置?

时间:2016-10-30 12:09:20

标签: swift3 settings icloud ios10 openurl

在我的应用程序中,我有一个警报视图,可以选择打开IOS设置应用程序的iCloud部分。这个以前适用于IOS8 / 9(Swift 2):

var memoize = f => 
        (map => v => (!map.has(v) && map.set(v, f(v)), map.get(v)))(new Map),
    fn = (n) => 2 * n,
    m_fn = memoize(fn);

console.log(m_fn(18), fn(18));

在IOS10(Swift 3)中它不再起作用,因为openURL()已被弃用。我将代码更改为以下内容:

let settingsCloudKitUrl = URL(string:"prefs:root=CASTLE")
if let url = settingsCloudKitUrl {
    UIApplication.sharedApplication().openURL(url)
}

但上述代码不适用于IOS10。 UIApplication.shared.canOpenURL(url)返回false。我需要做些什么才能让它在IOS10中再次运行?

1 个答案:

答案 0 :(得分:0)

对于iOS 10,将prefs:root=CASTLE更改为App-Prefs:root=CASTLE,这样可以正常使用

let settingsCloudKitUrl = URL(string:"App-Prefs:root=CASTLE")
if let url = settingsCloudKitUrl {
    if #available(iOS 10, *) {
        if UIApplication.shared.canOpenURL(url) {
            UIApplication.shared.open(url, options: [:], completionHandler: nil)
        }
    } else {
        UIApplication.shared.openURL(url)
    }
}