ios - iCloud突然超时无法下载文件

标签 ios ipad core-data icloud magicalrecord

我使用 iCloud 存储 iPad 应用程序的核心数据信息。我使用 Magical Record 提供的辅助方法处理所有与核心数据相关的事情。

昨天,我的应用程序在访问核心数据时开始表现异常。即使数据库完全为空(应用程序的全新安装),该应用程序也会完全卡住并花费大量时间加载。 等待几分钟后,它会报错说 iCloud 已超时。出现以下错误:

-[PFUbiquitySafeSaveFile waitForFileToUpload:](268): CoreData: Ubiquity:  <PFUbiquityPeerReceipt: 0x1f85c580>(0)
    permanentLocation: <PFUbiquityLocation: 0x1f85c5d0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/mobile.D2EB3F30-70E9-5405-931D-B7217274BA1C/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/receipt.0.cdt
    safeLocation: <PFUbiquityLocation: 0x1f85ce30>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/mobile.D2EB3F30-70E9-5405-931D-B7217274BA1C/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/mobile.D2EB3F30-70E9-5405-931D-B7217274BA1C.0.cdt
    currentLocation: <PFUbiquityLocation: 0x1f85ce30>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/mobile.D2EB3F30-70E9-5405-931D-B7217274BA1C/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/mobile.D2EB3F30-70E9-5405-931D-B7217274BA1C.0.cdt

    kv: (null)

Safe save failed for file, error: Error Domain=NSCocoaErrorDomain Code=512 "The file upload timed out." UserInfo=0x1f85d520 {NSLocalizedDescription=The file upload timed out.}
2013-01-03 16:03:35.276 MyAppName[188:1503] +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x12059c) Error: The file upload timed out.
2013-01-03 16:03:35.277 MyAppName[188:1503] +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x12059c) Error Message: The file upload timed out.
2013-01-03 16:03:35.278 MyAppName[188:1503] +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x12059c) Error Domain: NSCocoaErrorDomain
2013-01-03 16:03:35.280 MyAppName[188:1503] +[MagicalRecord(ErrorHandling) defaultErrorHandler:](0x12059c) Recovery Suggestion: (null)
2013-01-03 16:03:35.296 MyAppName[188:907] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'
*** First throw call stack:
(0x3ade92a3 0x356bf97f 0x3ad33e8d 0xb3db3 0x35e3f11f 0x35e3e4b7 0x35e431bd 0x3adbcf3b 0x3ad2febd 0x3ad2fd49 0x3a4b72eb 0x36879301 0x4fa7d 0x4fa18)
libc++abi.dylib: terminate called throwing an exception
(lldb)

我读过几篇文章,说 iCloud 的行为可能很奇怪,最好尝试等待。这就是我所做的,当我在 18 小时后的今天尝试时,或多或少发生了同样的事情。

首先,当我启动该应用程序时,它给了我另一个错误。启动应用程序时会发生这种情况,因为我在 -application:didFinishLaunchingWithOptions: 中配置了 Core Data 和 iCloud。我收到以下错误:

-[_PFUbiquityRecordsImporter rollResponseOperation:encounteredAnError:whileTryingToAdoptBaseline:](1509): CoreData: Ubiquity:  <PFUbiquityBaselineRollResponseOperation: 0x1e0b3540> localPeerID: mobile.D2EB3F30-70E9-5405-931D-B7217274BA1C, storeName: com.mydomain.MyAppName, modelVersionHash: HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=
    ubiquityRootLocation: <PFUbiquityLocation: 0x1cdb8650>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName

Encountered an error while trying to respond to the roll of baseline: <PFUbiquityBaseline: 0x1e0b4aa0>(0)
    permanentLocation: <PFUbiquityLocation: 0x1e0ab2e0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/baseline.zip
    safeLocation: <PFUbiquityLocation: 0x1e0b33a0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/mobile.D2EB3F30-70E9-5405-931D-B7217274BA1C
    currentLocation: <PFUbiquityLocation: 0x1e0ab2e0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/baseline.zip

    storeName: com.mydomain.MyAppName
    modelVersionHash: HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=
    baselineArchiveLocation: <PFUbiquityLocation: 0x1e0ab2e0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/baseline.zip

Error: Error Domain=NSCocoaErrorDomain Code=134310 "The operation couldn’t be completed. (Cocoa error 134310.)" UserInfo=0x1e0b8c40 {baseline=<PFUbiquityBaseline: 0x1e0b4aa0>(0)
    permanentLocation: <PFUbiquityLocation: 0x1e0ab2e0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/baseline.zip
    safeLocation: <PFUbiquityLocation: 0x1e0b33a0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/mobile.D2EB3F30-70E9-5405-931D-B7217274BA1C
    currentLocation: <PFUbiquityLocation: 0x1e0ab2e0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/baseline.zip

    storeName: com.mydomain.MyAppName
    modelVersionHash: HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=
    baselineArchiveLocation: <PFUbiquityLocation: 0x1e0ab2e0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/baseline.zip
, localStoreKV=<PFUbiquityKnowledgeVector: 0x1e0b90c0> ()}
userInfo: {
    baseline = "<PFUbiquityBaseline: 0x1e0b4aa0>(0)\n\tpermanentLocation: <PFUbiquityLocation: 0x1e0ab2e0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/baseline.zip\n\tsafeLocation: <PFUbiquityLocation: 0x1e0b33a0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/mobile.D2EB3F30-70E9-5405-931D-B7217274BA1C\n\tcurrentLocation: <PFUbiquityLocation: 0x1e0ab2e0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/baseline.zip\n\n\tstoreName: com.mydomain.MyAppName\n\tmodelVersionHash: HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=\n\tbaselineArchiveLocation: <PFUbiquityLocation: 0x1e0ab2e0>: /private/var/mobile/Library/Mobile Documents/XXXXXXXXXX~com~mydomain~MyAppName/.baseline/com.mydomain.MyAppName/HExUvqv20os5L2c5u1DeTzBs3lEpOwzkgw1MsXYupPg=/baseline.zip\n";
    localStoreKV = "<PFUbiquityKnowledgeVector: 0x1e0b90c0> ()";
}

现在,在尝试了论坛上提到的几种解决方案(例如清理构建、重新安装应用程序、删除 iCloud 数据等)后,我遇到了与昨天相同的错误。

我真的不明白为什么会这样。我不记得对 iCloud 配置做过任何事情。我已经更新了我的数据模型,但是在全新安装应用程序、删除所有以前的 iCloud 数据以及其他什么之后,这应该不是什么问题。

我希望有人能帮助我进一步了解这些错误发生的原因。

最佳答案

这似乎是目前 iCloud 的一个已知问题。它一直在使用 CoreData 和 iCloud 间歇性地为我的应用程序工作。大量错误域=NSCocoaErrorDomain 代码=512 “文件上传超时。”它可能与您的应用程序完全无关,而与 iCloud 服务器有关。我一直在关注开发者论坛上的一个主题,指出它是 Apple 方面的错误。 (至少对于自 12 月 30 日至 31 日以来的问题)这是讨论:

Link to discussion thread 176739

关于ios - iCloud突然超时无法下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14141634/

相关文章:

objective-c - ObjC:写入.plist,优化方式?

ios - 理解 UIBezierPath 曲线机制、controlPoint 和曲线点

iphone - 在一个 View Controller 中保存分数值并显示在另一个 View Controller 中

iphone - 用于构建通用应用程序的最新资源/教程?

ios - 我如何在单个获取请求中调用两个 NSPredicate。核心数据 iOS Swift

具有多个 NSManagedObjectContext 的 iOS 5 核心数据重复行

ios - NMSSH 不与 SWIFT 连接

ios - UIImagePickerController使iPad上的应用程序崩溃,但iPhone崩溃

ios - 从 TableView 和 coreData 中删除行

ios - UICollectionview 单元格和 UIViewcontroller 的透明背景