我已经从头开始创建了一个Core Data项目,我做的唯一更改是持久协调器添加商店,我提供了NSPersistentStoreUbiquitousContentNameKey选项:
coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: [NSPersistentStoreUbiquitousContentNameKey : "coreDataiCloudTestStore"])
我在启动时插入并保存新的托管对象。
在发布时,没有登录的iCloud帐户,没有问题。当应用程序运行时,我正在登录iCloud并返回应用程序。我收到此错误:您无权将文件“store”保存在文件夹中,不允许操作:
CoreData:错误:-addPersistentStoreWithType:SQLite 配置:PF_DEFAULT_CONFIGURATION_NAME 网址:文件:///var/mobile/Containers/Data/Application/9032B2BC-BE8B-42C9-A9CC-EF3E01AA6F2B/Documents/SingleViewCoreData.sqlite 选项:{ NSPersistentStoreUbiquitousContentNameKey = coreDataiCloudTestStore; PFUbiquitySetupSynchronousSideLoadKey = 1; }
...返回错误错误域= NSCocoaErrorDomain代码= 513"您无权将文件“store”保存在文件夹中 “380E290C-97F9-4DC3-9B3C-43322FCA455D”&#34。 的UserInfo = {NSFilePath =的/ var /移动/容器/数据/应用/ 9032B2BC-BE8B-42C9-A9CC-EF3E01AA6F2B /文档/ CoreDataUbiquitySupport /移动〜C5A2ECE3-1AB9-45FA-9C15-037DCCA054DE / coreDataiCloudTestStore / 380E290C-97F9-4DC3- 9B3C-43322FCA455D /存储, NSUnderlyingError = 0x1453f430 {错误域= NSPOSIXErrorDomain代码= 1 "不允许操作"}} with userInfo dictionary { NSFilePath =" / var / mobile / Containers / Data / Application / 9032B2BC-BE8B-42C9-A9CC-EF3E01AA6F2B / Documents / CoreDataUbiquitySupport / mobile~C5A2ECE3-1AB9-45FA-9C15-037DCCA054DE / coreDataiCloudTestStore / 380E290C-97F9-4DC3 -9B3C-43322FCA455D /存储&#34 ;; NSUnderlyingError ="错误域= NSPOSIXErrorDomain代码= 1 \"操作不被允许\"&#34 ;; }
PFUbiquitySwitchboardEntry containerIdentifierChanged :: CoreData:Ubiquity:之后加载新临时协调器时出错 帐户随期权变更 {{ NSPersistentStoreUbiquitousContentNameKey = coreDataiCloudTestStore;和URL 文件:///var/mobile/Containers/Data/Application/9032B2BC-BE8B-42C9-A9CC-EF3E01AA6F2B/Documents/SingleViewCoreData.sqlite 和错误=错误域= NSCocoaErrorDomain代码= 513" 你没有 允许将文件“store”保存在文件夹中 “380E290C-97F9-4DC3-9B3C-43322FCA455D”&#34。 的UserInfo = {NSFilePath =的/ var /移动/容器/数据/应用/ 9032B2BC-BE8B-42C9-A9CC-EF3E01AA6F2B /文档/ CoreDataUbiquitySupport /移动〜C5A2ECE3-1AB9-45FA-9C15-037DCCA054DE / coreDataiCloudTestStore / 380E290C-97F9-4DC3- 9B3C-43322FCA455D /存储, NSUnderlyingError = 0x1453f430 {错误域= NSPOSIXErrorDomain代码= 1 "不允许操作"}}
为什么会这样?
答案 0 :(得分:2)
您必须在选项中启用NSPersistentStoreRebuildFromUbiquitousContentOption标志
从iCloud重建
要删除本地数据并使用iCloud中的现有记录重新开始,请在将持有iCloud的持久存储添加到持久性存储协调器时,将值为@YES的NSPersistentStoreRebuildFromUbiquitousContentOption选项传递给它。包括您通常包含的任何iCloud选项。