Я пытаюсь создать URL-адрес с областью безопасности для предоставленного пользователем файла, который является псевдонимом, используя эти методы, которые используют resolvedFinderAlias метод а>():
func storeBookmark(url: URL) -> Bool
{
// Resolve alias before storing bookmark
let origURL = (url as NSURL).resolvedFinderAlias()
// Peek to see if we've seen this key before
if let data = bookmarks[url] {
if self.fetchBookmark(key: url, value: data) {
Swift.print ("= \(url.absoluteString)")
return true
}
}
do
{
let options:URL.BookmarkCreationOptions = [.withSecurityScope,.securityScopeAllowOnlyReadAccess]
let data = try url.bookmarkData(options: options, includingResourceValuesForKeys: nil, relativeTo: origURL)
bookmarks[url] = data
return self.fetchBookmark(key: url, value: data)
}
catch let error
{
NSApp.presentError(error)
Swift.print ("Error storing bookmark: \(url)")
return false
}
}
который выдает ошибку при попытке использовать разрешенный URL-адрес в качестве относительного URL-адреса; Первоначально я просто заменил переданный URL-адрес на origURL, который тоже не работал.
Единственное решение — не делать этого или предварительно передать исходный URL. Это похоже на то, что вы не можете поменять URL-адреса, которые вам должны быть предоставлены либо из открытого диалогового окна, либо из папки на монтажном столе.
URL-адреса, являющиеся псевдонимами, не подходят для работы в песочнице?