Core data 在iOS8中使用本地xml文件引发错误的核心数据/iCloud种子设定

Core data 在iOS8中使用本地xml文件引发错误的核心数据/iCloud种子设定,core-data,ios8,icloud,Core Data,Ios8,Icloud,希望这是一个简单的问题,但我还没有找到解决办法。我有一个应用程序,我正试图用它来实现iCloud和核心数据。我希望它在iOS7和iOS8上运行 该应用程序是用于收藏品的清单/表格视图应用程序 本质上,应用程序有一个预种子xml文件,其中大约有50000个。sqlite/core数据最初配置为只有1项。用户可以从表视图中选择要添加到核心数据存储的组(以便不包括所有50000项)。当用户选择一个包含1-50个项目的组时,它将解析这些项目的xml并将其写入核心数据存储。当用户选择一个包含大量文件的组时

希望这是一个简单的问题,但我还没有找到解决办法。我有一个应用程序,我正试图用它来实现iCloud和核心数据。我希望它在iOS7和iOS8上运行

该应用程序是用于收藏品的清单/表格视图应用程序

本质上,应用程序有一个预种子xml文件,其中大约有50000个。sqlite/core数据最初配置为只有1项。用户可以从表视图中选择要添加到核心数据存储的组(以便不包括所有50000项)。当用户选择一个包含1-50个项目的组时,它将解析这些项目的xml并将其写入核心数据存储。当用户选择一个包含大量文件的组时,它会解析并添加这些文件,但在解析过程中还会抛出一些随机的“no document at url”错误。应用程序没有崩溃,所有项目似乎都已添加,但应用程序停止与iCloud同步。确切的错误是:

__45-[PFUbiquityFilePresenter processPendingURLs]_block_invoke(439): CoreData: Ubiquity:  
Librarian returned a serious error for starting downloads Error Domain=BRCloudDocsErrorDomain Code=5 
"The operation couldn’t be completed. (BRCloudDocsErrorDomain error 5 - No document at URL)" 
UserInfo=0x7fd7f54abea0 {NSDescription=No document at URL, 
NSFilePath=/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-      0D52D833E28A/data/Library/Mobile    Documents/iCloud~com~xxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/C45FA553-6CA0-4C26-845B-B478EF7EAD60.1.cdt, 
NSUnderlyingError=0x7fd7f54aa200 "The operation couldn’t be completed. No such file or directory"} 
with userInfo {
NSDescription = "No document at URL";
NSFilePath = "/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/C45FA553-6CA0-4C26-845B-B478EF7EAD60.1.cdt";
NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=2 \"The operation couldn\U2019t be completed. 
No such file or directory\" UserInfo=0x7fd7f5433240 {NSDescription=No such file or directory}";
} for these urls: (
"file:///Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile%20Documents/iCloud~com~xxxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/C45FA553-6CA0-4C26-845B-B478EF7EAD60.1.cdt"
)
然后我也会得到一个“移动”错误(有时在解析完成之后):

}

有没有关于如何解决这个问题的想法?我是否试图一次做太多更改,这会破坏核心数据/icloud同步?如有任何想法或建议,将不胜感激


扎克

扎克,这不是答案(我没有代表评论),但它可能会帮助你走上正确的道路。我正在实施iCloud核心数据,并且遇到了与iOS 8相同的问题。。。相同的“URL处无文档”错误(对我来说没有移动错误),数据同步中出现相同的故障。两项意见:

  • 当我在两台设备上运行我的应用程序时,核心数据同步最初运行得非常好。。。比如几分钟和几次更新。然后我得到了“URL上没有文档”错误

  • 我的.sqlite数据库非常小,并且我尝试进行的更新是适度的(例如添加一个新实体),因此我不认为文件大小或更新复杂性是影响因素

  • 在记录这些错误的设备上,存储停止从iCloud导入更改。但我在该设备上所做的更改确实会继续保留到另一台设备上。因此,这种影响就像是单向崩溃


希望这有帮助。如果您有任何进展,我们将不胜感激。我已经为此苦苦挣扎了好几个星期,几乎要放弃并发布没有iCloud数据同步的应用程序(它是通用的)

为了它的价值。该代码适用于本地存储或iOS 7中的icloud存储—只有在我将iOS 8添加到等式中时,icloud存储才会开始抛出这些错误。感谢您,我也遇到了同样的问题,不知道如何解决这个问题,或者从coredata切换到其他方面:/我正在观察同样的问题,我的用户也是。同步只进行一次,然后一起停止。我收到相同的错误消息。我有相同的问题。在这一点上,让开发人员保持理智的唯一解决方案是使用替代方案。核心数据不是问题所在,而是底层的iCloud堆栈。我建议为CloudKit或其他具有特定于应用程序的自定义和简单同步堆栈的服务编写自定义
NSIncrementalStore
[PFUbiquityTransactionLog moveFileToPermanentLocationWithError:](761): CoreData: Ubiquity:  
CoreData: Ubiquity: Error writing export log to file: file:///Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile%20Documents/iCloud~com~xxxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt
error: Error Domain=NSCocoaErrorDomain Code=516 "The operation couldn’t be completed. (Cocoa error 516.)" 
UserInfo=0x7fd7f49cdfd0 {NSSourceFilePathErrorKey=/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxx~xxxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/tempLogs.nosync/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt, 
NSUserStringVariant=(
Move
), NSDestinationFilePath=/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt, 
NSFilePath=/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxx~xxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/tempLogs.nosync/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt, 
NSUnderlyingError=0x7fd7f497f430 "The operation couldn’t be completed. File exists"}
userInfo: {
NSDestinationFilePath = "/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxx~xxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt";
NSFilePath = "/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/tempLogs.nosync/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt";
NSSourceFilePathErrorKey = "/Users/zacharyfisher/Library/Developer/CoreSimulator/Devices/4B70FCFC-4704-4C83-B848-0D52D833E28A/data/Library/Mobile Documents/iCloud~com~xxxxxxx~xxxxxxx/CoreData/iCloud/nobody~sim43DA22C4-427B-5FCD-9B61-90CE79638F6B/tempLogs.nosync/iCloud/PZbSJk1f2RNB6ucDj0Y6VqL1KgXYAxi4LcApXONjvnQ=/ABE37211-02B7-4F20-B631-B5D91B23E9BE.1.cdt";
NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=17 \"The operation couldn\U2019t be completed. File exists\"";
NSUserStringVariant =     (
    Move
);