在我的项目中,我将UIManagedDocument与CoreData和iCloud一起使用。在iCloud中创建UIManagedDocument时似乎存在很多错误 - 尤其是在没有网络服务的情况下。
但是现在我在保存文档进行创建时,网络服务(还有wifi)会出现一些奇怪的错误/应用程序崩溃:
-[PFUbiquitySetupAssistant validateOptionsWithError:](262): CoreData: Ubiquity: Error attempting to read ubiquity root url: file://localhost/private/var/mobile/Library/Mobile%20Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/.
Error: Error Domain=LibrarianErrorDomain Code=1 "The operation couldn’t be completed. (LibrarianErrorDomain error 1 - Unable to initiate item download.)" UserInfo=0x1f56d140 {NSURL=file://localhost/private/var/mobile/Library/Mobile%20Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/, NSUnderlyingError=0x1d89b4a0 "The operation couldn’t be completed. (UBErrorDomain error 0.)", NSDescription=Unable to initiate item download.}
userInfo: {
NSDescription = "Unable to initiate item download.";
NSURL = "file://localhost/private/var/mobile/Library/Mobile%20Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/";
NSUnderlyingError = "Error Domain=UBErrorDomain Code=0 \"The operation couldn\U2019t be completed. (UBErrorDomain error 0.)\"";
}
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.'
*** First throw call stack:
它表示无法完成事务日志文件夹中的下载操作。我无法理解这一点,因为应用程序应创建文档而不下载任何内容。
顺便说一下,应用程序的iCloud文件夹是空的!
从设备中删除iCloud帐户并再次登录也没有用。该设备是运行iOS 6的iPhone 4S。
有人有类似的经历吗?
编辑:
现在,在删除和重建的一些内容之后,我在同一设备上遇到了不同的错误:
-[PFUbiquitySafeSaveFile waitForFileToUpload:](268): CoreData: Ubiquity: <PFUbiquityPeerReceipt: ...>(0)
permanentLocation: <PFUbiquityLocation: ...>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/mobile.XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Document/Q0_AoYZV8MTbAihmdWBiEFhxmCgziT9RyrvylTHgQP4=/receipt.0.cdt
safeLocation: <PFUbiquityLocation: ...>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/mobile.XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Document/Q0_AoYZV8MTbAihmdWBiEFhxmCgziT9RyrvylTHgQP4=/mobile.XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.0.cdt
currentLocation: <PFUbiquityLocation: ...>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~companyname~AppName/TransactionsFolder/mobile.XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/Document/Q0_AoYZV8MTbAihmdWBiEFhxmCgziT9RyrvylTHgQP4=/mobile.XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.0.cdt
kv: (null)
Safe save failed for file, error: Error Domain=NSCocoaErrorDomain Code=512 "The file upload timed out." UserInfo=0x1de36dc0 {NSLocalizedDescription=The file upload timed out.}
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.'
*** First throw call stack:
似乎设备无法访问iCloud服务,即使它获得了iCloud令牌并且可达性也很好......
答案 0 :(得分:1)
是的,我有非常类似的经历。这些是Core Data的iCloud集成中的内部错误。它们并不意味着你做错了什么,而且你无法用代码来修复它们。你是对的 - 你没有在你的代码中下载任何东西,但是Core Data正试图在幕后尝试这样做,并且失败了。这完全不受你的控制。
第一个错误表示框架无法下载现有的事务文件。可能没有,但它甚至无法分辨。第二个错误说它无法创建任何新的事务文件。你是对的 - 你无法访问iCloud,即使API说你这样做了。
您可能能够通过在“设置”中找到您的应用来重新开始工作 - &gt; iCloud并删除那里的任何数据,从设备上删除你的应用程序,牺牲一只鸡,然后再试一次。但问题又回来了。向Apple提出错误并希望它得到修复。
答案 1 :(得分:0)
如果您的设备在重置其iCloud数据后拒绝同步,请尝试通过设置&gt;重置所有设置一般&gt; 重置所有设置。此方法不会删除任何应用程序数据,并且可以解决“错误尝试读取ubiquity root url ”错误消息。
答案 2 :(得分:0)
我知道这是旧的,但我一直在追逐类似的问题,也许以下内容会帮助其他人:
在我的情况下,我在删除iCould数据和正在开发的应用程序并从头开始重建后得到了这个。设备的完全关闭和重启似乎解决了这个问题 - 不确定为什么,也许Timbo的'重置所有设置'做同样的事情 - 但这样你也不会丢失其他应用程序设置。
阿里