在我的应用程序中,我有一个警报视图,可以选择打开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中再次运行?
答案 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)
}
}