Как открыть UIDocument на iCloud с помощью UIDocumentBrowserViewController - PullRequest
0 голосов
/ 27 мая 2019

Я разработал документальное приложение для iOS, используя UIDocumentBrowserViewController (это игра).При запуске приложения я хочу, чтобы автоматически открыть последний использованный UIDocument.Для этого я сохраняю строку URL созданного или открытого UIDocument в пользовательских значениях по умолчанию и пытаюсь открыть его на viewDidLoad моего DocumentBrowserViewController.Это прекрасно работает для документов в локальном хранилище, но не работает на iCloud (или некоторых других иностранных) хранимых документах.

Строка URL для локально сохраненного документа выглядит следующим образом:

/ private/var/mobile/Containers/Data/Application/F4AF5E0B-C261-47F5-95ED-0B8A1DFEEDE6/Documents/Emsave.emp

В том же документе в некоторых облачных сервисах есть эта строка URL:

/ private / var / mobile / Containers / Shared / AppGroup / 83CB33FC-5A87-404F-BFB9-8F2910A2192E / Хранилище файлового поставщика / 485172592867551584 / Emsave.emp

ViewDidLoad ofmy DocumentBrowserViewController:

    override func viewDidLoad() {
        super.viewDidLoad()

        delegate = self

        allowsDocumentCreation = true
        allowsPickingMultipleItems = false

        // Do any additional setup after loading the view, typically from a nib.
                                                                // did we already open a game before?
        if let url = UserDefaults.standard.string(forKey: DocumentBrowserViewController.lastGameKey) {
            print("last opened game: \(url)")
            if FileManager.default.fileExists(atPath: url) {    // and is the game still existing?
                presentDocument(at: URL(fileURLWithPath: url))  // open it
            }
        }
    }

Тестовый FileManager.default.fileExists (atPath: url), кажется, всегда возвращает false, если в строке url указан документ, хранящийся в облачной службе, хотя он там есть.

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