iOS11 Swift 4: хранение прав доступа для URL-адресов, полученных из DocumentBrowserViewController - PullRequest
0 голосов
/ 09 июня 2018

При использовании DocumentBrowserViewController для доступа к файлам из других приложений возможно ли сохранить права доступа к этим файлам?

Конкретный вопрос

В настоящее время, для проверки концептуальных целей,Я распечатал URL для файла, выбранного через DocumentBrowserViewController, на консоль, жестко запрограммировал этот URL где-то в моем коде и попытался открыть этот файл снова.Это не работает из-за: {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}}

Теперь, есть ли способ сохранить права доступа?

В сообщении в блоге я нашел что-то, используя:

do {
    let data = try sourceURL.bookmarkData(
        options: URL.BookmarkCreationOptions.withSecurityScope,
        includingResourceValuesForKeys: nil,
        relativeTo: nil)
    print(data)
} catch {
    print(error)
}

Но withSecurityScope "недоступен".(Чтобы быть точным: 'withSecurityScope' has been explicitly marked unavailable here (Foundation.NSURL))

Есть ли способ сделать такого рода вещи?

С уважением и заранее спасибо:)

Редактировать

Так что, может быть, я немного поспешил с вопросом, приведенный выше код просто необходимо скорректировать на:

do {
    let data = try sourceURL.bookmarkData(
        options: URL.BookmarkCreationOptions.minimalBookmark,
        includingResourceValuesForKeys: nil,
        relativeTo: nil)
    print(data)
} catch {
    print(error)
}

И эти данные затем можно использовать примерно так:

let url = try URL.init(resolvingBookmarkData: data, bookmarkDataIsStale: &stale)!

:)

1 Ответ

0 голосов
/ 10 июня 2018

Вам необходимо создать закладку из URL и сохранить ее.Это объясняется в отношении отметки 40 'этого сеанса WWDC: https://developer.apple.com/videos/play/wwdc2018/216, а также в образце кода частиц, опубликованном на прошлой неделе.

По сути, приведенный выше фрагмент правилен, за исключением того, что withSecurityScope флаг на iOS бесполезен (это автоматически).При разрешении URL-адреса при запуске необходимо запустить доступ или использовать UIDocument, который сделает это за вас.

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