我有一个使用 Core Data 的 iOS 应用程序。该应用程序可以将文件本地保存在设备和 iCloud 中。当我使用创建无处不在容器的 URL 时
FileManager.default.url(forUbiquityContainerIdentifier: nil)?.appendingPathComponent("Documents")
读取和写入核心数据文件工作正常。
现在我想将最近使用的文件的书签存储在UserDefaults
. 我使用标准方法创建书签url.bookmarkData()
。
当我使用从书签解析网址时
var isStale = false
let url = try URL(resolvingBookmarkData: bookMark, bookmarkDataIsStale: &isStale)
它看起来与上述创建的 url 相同FileManager
。可以适当地读取文件内容。到目前为止,一切都很好。
当应用程序尝试保存managedObjectContext
我的 CoreDataStack 时,就会出现问题。上下文触发以下错误:
Updating max pk failed: authorization denied with userInfo of { NSSQLiteErrorDomain = 23; }
显然,在从书签解析普遍存在的容器 URL 后,写入访问似乎被拒绝,我不知道如何解决这个问题。