В изолированном приложении я использую NSOpenPanel
, чтобы пользователь выбрал исходную папку. Затем я сохраняю закладку для повторного использования в следующий раз, когда приложение загружается следующим образом:
let defaults = UserDefaults.standard
let bookmark = try! url.bookmarkData(options: .securityScopeAllowOnlyReadAccess)
defaults.set(bookmark, forKey: "sourceFolder")
Затем onAppear
:
if let bookmarkData = defaults.data(forKey: "sourceFolder") {
print(bookmarkData) // 808 bytes
var stale = false
let savedCurrentDirectory = try! URL(resolvingBookmarkData: bookmarkData, options: .withSecurityScope, relativeTo: nil, bookmarkDataIsStale: &stale)
Но это не с:
Неустранимая ошибка: попробуйте! выражение неожиданно вызвало ошибку: Ошибка Domain = NSCocoaErrorDomain Code = 259 «Файл не может быть открыт, потому что он не в правильном формате.»
Если я удаляю .withSecurityScope
, кажется, работать нормально. Что происходит?