【发布时间】:2010-06-05 13:48:51
【问题描述】:
我尝试保存数据并与 CoreData 和 iPhone 应用程序的多线程合并。 但是合并后我无法在主线程中获取托管对象。
我是这样写代码的:
[managedObjectContext performSelectorOnMainThread:@selector(mergeChangesFromContextDidSaveNotification:)
withObject:notification
waitUntilDone:YES];
[self performSelectorOnMainThread:@selector(didMerged:) withObject:objectIds waitUntilDone:YES];
所以我尝试通过 objectIds 来获取主线程中的 NSManagedObject 实例,这些实例是在另一个线程中生成的。起初我尝试了“objectWithId”方法,但它生成了错误对象。然后我尝试了“existingObjectWithID”方法,但它部分生成了对象,其他对象为零,并出现以下错误:
[Error] Error Domain=NSCocoaErrorDomain Code=133000 "Operation could not be completed. (Cocoa error 133000.)"
怎么了?在另一个线程中合并后,有什么办法可以通过objectIds检索所有对象?
谢谢。
【问题讨论】: