所以发生了什么这里是应用刚刚收到了NSPersistentStoreDidImportUbiquitousContentChangesNotification
,我刚才叫有没有人知道这是怎么回事?核心数据/ iCloud的
- (void)storesDidUpdate:(NSNotification*)note {
FLOG(@"storesDidUpdate ");
[_managedObjectContext mergeChangesFromContextDidSaveNotification:note];
// Refresh user Interface
[[NSNotificationCenter defaultCenter] postNotificationName:@"iProjectCoreDataUpdated"
object:self];
[self updateDetails];
}
而现在的应用程序试图通过简单地做更新与文本的新副本一个UITextView以下内容:
self.detailText.attributedText = [self.detailItem valueForKey:@"scope"];
其中detailItem是在从iCloud接收更新之前检索到的NSManagedObject。
不知道为什么textContainer在抱怨或者抱怨什么,也不知道为什么导入日志正在发生,因为我已经收到一个通知,说它已经完成了!
奇怪的是,其他UITableViews更新正确,如果我只是调用reloadData。
有关我在这里做错事情的任何想法?请注意,如果我不尝试更新textView,它会正常工作,如果我关闭视图并返回它,那么我会得到正确的数据。
此外,当我重新启动应用程序时,所有数据都存在,没有损坏或任何事情,事实上,尽管事情在iCloud的任何一方都爆炸,但应用程序在核心数据存储方面似乎非常健壮。
哦,reloadFetchedResults有点让人误解,因为我似乎不需要这样做,所以方法名称是过去的宿醉,我所做的只是刷新UI调用中的值。
2013-10-09 07:25:53.783 MyApp[4509:510b] OpeningViewController.reloadFetchedResults: called 2013-10-09 07:25:53.786 MyApp[4509:510b] InfoDetailViewController.reloadFetchedResults: called in InfoDetailViewController 2013-10-09 07:25:53.788 MyApp[4509:510b] * Assertion failure in void _UIPerformResizeOfTextViewForTextContainer(NSLayoutManager *, UIView *, NSTextContainer *, NSUInteger)(), /SourceCache/UIFoundation/UIFoundation-258/UIFoundation/TextSystem/NSLayoutManager_Private.m:1510 2013-10-09 07:25:53.793 MyApp[4509:510b] -_PFUbiquityRecordImportOperation main: CoreData: Ubiquity: Error importing transaction log: transactionLogLocation: : /var/mobile/Library/Mobile Documents/HHHHHHNNNN~com~mycompany~MyApp/CoreData/New Document/duncangroenewald~simAABC628E-9D5E-58F7-9B8D-0BC724C6D0C8/New Document/W8MckEJ0x2d~HZZIeUH2be6hs41TEOONzKIrCuLcuP4=/6C953E7C-B2AF-47F7-B828-DD062B96415D.1.cdt transactionNumber: 5 , exception: Only run on the main thread! User Info: (null) 2013-10-09 07:25:53.803 MyApp[4509:510b] -_PFUbiquityRecordsImporter operation:failedWithError:: CoreData: Ubiquity: Import operation encountered an error: Error Domain=NSCocoaErrorDomain Code=134060 "The operation couldn’t be completed. (Cocoa error 134060.)" UserInfo=0x16d882c0 {exception=Only run on the main thread!} userInfo: { exception = "Only run on the main thread!"; }. While trying to import the log file at the URL: transactionLogLocation: : /var/mobile/Library/Mobile Documents/HHHHHHNNNN~com~mycompany~MyApp/CoreData/New Document/duncangroenewald~simAABC628E-9D5E-58F7-9B8D-0BC724C6D0C8/New Document/W8MckEJ0x2d~HZZIeUH2be6hs41TEOONzKIrCuLcuP4=/6C953E7C-B2AF-47F7-B828-DD062B96415D.1.cdt transactionNumber: 5 2013-10-09 07:25:53.809 MyApp[4509:510b] * Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Only run on the main thread!' *** First throw call stack: (0x2ff23f53 0x3a6996af 0x2ff23e2d 0x308cb1df 0x3796643d 0x37966185 0x3798f7bb 0x379926f7 0x37992759 0x379b378b 0x379b331f 0x379b2f0d 0x3273b05d 0x129717 0x2fee6121 0x2fe5a317 0x3083edcd 0x308436ab 0x118263 0x2fee6121 0x2fe5a317 0x2fd8c69f 0x2fd8cc93 0x2fd813dd 0x3085197b 0x308f5b35 0x3ab83297 0x3ab8309b 0x3ab83d15 0x3ab83f8d 0x3acbedbf 0x3acbec84) libc++abi.dylib: terminating with uncaught exception of type NSException
编辑: 我已经发布了iOS和OSX一些样本核心数据/ iCloud的应用程序在这里 - 它们包括用于加载/后台线程删除数据,以及iCloud的同步。希望解决这里描述的问题。 http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/
在其他视图奇怪的是,完全相同的代码似乎更新用户界面没有任何问题。 –
很难确定,但错误信息反复说'只在主线上运行!'这个事实可能是一个巨大的,巨大的,重要的线索,需要立即认真考虑。 –
Tom看到下面的附加信息... –