3

该应用程序从一开始就放在 iCloud 中,所以我有机会用数据填充它,并查看其他设备上发生的同步。但是,仅在一台设备上删除和重新部署应用程序后,我开始遇到问题。

特别是在启动时,此时需要很多时间:

NSLog(@"add coordinator");
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}
NSLog(@"finish");

我可以在控制台中看到“添加协调器”,然后它似乎永远处于暂停状态。相反,通过激活核心数据记录,我可以看到它正在做很多选择和更新。

然后显示每个 transactionNumber 的无限日志错误消息列表:

CoreData: Ubiquity: Error importing transaction log: <PFUbiquityTransactionLog: 0x1929e350>
    transactionLogLocation: <PFUbiquityLocation: 0x17bf1c40>: /private/var/mobile/Library/Mobile Documents/6G8M57K6MU~myapp/mobile.63606F7B-D6A9-5937-9160-126AC1315EBF/myAppCloud/3IEWV8FXM6GJ58H5PkyqFsyuoUZ2qIOuJOfon1QIYC4=/035A5A1C-F893-4B67-A784-866A4DE1B3F1.1.cdt
    transactionNumber: 1
, exception: -[__NSCFDictionary setObject:forKey:]: attempt to insert nil key
-[_PFUbiquityRecordsImporter operation:failedWithError:](839): CoreData: Ubiquity:  Import operation encountered an error: Error Domain=NSCocoaErrorDomain Code=134060 "The operation couldn’t be completed. (Cocoa error 134060.)" UserInfo=0x194c9f40 {exception=-[__NSCFDictionary setObject:forKey:]: attempt to insert nil key} while trying to import the log file at the URL: <PFUbiquityTransactionLog: 0x1929e350>
    transactionLogLocation: <PFUbiquityLocation: 0x17bf1c40>: /private/var/mobile/Library/Mobile Documents/6G8M57K6MU~myapp/mobile.63606F7B-D6A9-5937-9160-126AC1315EBF/myAppCloud/3IEWV8FXM6GJ58H5PkyqFsyuoUZ2qIOuJOfon1QIYC4=/035A5A1C-F893-4B67-A784-866A4DE1B3F1.1.cdt
    transactionNumber: 1

然后正如我所说,“完成”被打印出来,应用程序根本没有任何数据。

4

1 回答 1

1

一位 Apple 工程师回复了我在 Apple Dev 论坛上的帖子,称这是一个已知错误,已在即将发布的 iOS 6 中修复。

因此,没有比刮掉设备上的所有数据并重新开始的解决方案。在这一点上,我想我将在没有 iCloud 的情况下使用 CoreData。

于 2012-06-20T19:29:44.480 回答