Я пытаюсь выяснить, был ли элемент, представленный NSURL, был передан текущему пользователю через iCloud.
Я получаю NSURL из метода делегата UIApplication
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool {
return url.isShared()
}
Где мое расширение определяется как:
extension URL {
public func isShared() -> Bool {
do {
let values = try self.resourceValues(forKeys: [.ubiquitousItemIsSharedKey])
if let isShared = values.ubiquitousItemIsShared {
print("ubiquitousItemIsShared is \(isShared)")
return isShared
} else {
print("ubiquitousItemIsShared is nil")
return false
}
} catch let error {
print("Failed to get resourceValues: \(error)")
return false
}
}
}
Когда я тестирую этот код, я делаю следующее из приложения «Файлы».
- Открытие файла «На моем iPad»
- Открыть файл «Shared by John Appleseed»
Однако оба эти файла (один на устройстве, а другой общий) выводят в консоли одно и то же: ubiquitousItemIsShared is nil означает, что values.ubiquitousItemIsShared
равно нулю.
Я что-то здесь упускаю?