1

我从头开始创建了一个 Core Data 项目,我所做的唯一更改是持久协调器正在添加一个商店,我提供了一个 NSPersistentStoreUbiquitousContentNameKey 选项:

coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: [NSPersistentStoreUbiquitousContentNameKey : "coreDataiCloudTestStore"])

我在启动时插入并保存了一个新的托管对象。

启动时没有登录 iCloud 帐户,没有问题。当应用程序运行时,我正在登录 iCloud 并返回应用程序。我收到此错误:您无权将文件“store”保存在文件夹中,不允许操作:

CoreData:错误:-addPersistentStoreWithType:SQLite 配置:PF_DEFAULT_CONFIGURATION_NAME URL:file:///var/mobile/Containers/Data/Application/9032B2BC-BE8B-42C9-A9CC-EF3E01AA6F2B/Documents/SingleViewCoreData.sqlite 选项:{ NSPersistentStoreUbiquitousContentNameKey = coreDataiCloudTestStore; PFUbiquitySetupSynchronousSideLoadKey = 1; }

... 返回错误 错误域 = NSCocoaErrorDomain 代码 = 513 “您无权将文件“存储”保存在文件夹中 “380E290C-97F9-4DC3-9B3C-43322FCA455D”。” UserInfo={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/store, NSUnderlyingError=0x1453f430 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not allowed"}} 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/Errorstoreing=“UnderlyError”;NS Domain=NSPOSIXErrorDomain Code=1 \"不允许操作\""; }

PFUbiquitySwitchboardEntry containerIdentifierChanged::CoreData:Ubiquity: 使用选项{ { NSPersistentStoreUbiquitousContentNameKey = coreDataiCloudTestStore;更改帐户后加载新的临时协调器时出错;} } 和 URL file:///var/mobile/Containers/Data/Application/9032B2BC-BE8B-42C9-A9CC-EF3E01AA6F2B/Documents/SingleViewCoreData.sqlite 和 error = Error Domain=NSCocoaErrorDomain Code=513 “你没有将文件“store”保存在文件夹中的权限 “380E290C-97F9-4DC3-9B3C-43322FCA455D”。” UserInfo={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/store, NSUnderlyingError=0x1453f430 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not allowed"}}

为什么会这样?

4

1 回答 1

2

从 iCloud 重建

要删除本地数据并使用 iCloud 中的现有记录重新开始,请在将启用 iCloud 的持久存储添加到持久存储协调器时传递值为 @YES 的 NSPersistentStoreRebuildFromUbiquitousContentOption 选项。包括您通常包括的任何 iCloud 选项。

于 2016-04-01T07:32:15.337 回答