iOS: NSURL resourceValues ​​ubiquitousItemIsShared не возвращает ожидаемое значение - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь выяснить, был ли элемент, представленный 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 равно нулю.

Я что-то здесь упускаю?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...