gpt4 book ai didi

iphone - CoreData Context 合并后如何获取对象

转载 作者:行者123 更新时间:2023-12-03 16:10:30 27 4
gpt4 key购买 nike

我尝试保存数据并与 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检索所有对象?

谢谢。

最佳答案

有两种类型的对象 ID。在保存 NSManagedObject 之前,它具有临时对象 ID。保存后,就会得到最终的id。所以你可能使用了错误的id...

在此处读取托管对象 ID 和 URI:https://developer.apple.com/documentation/coredata/nsmanagedobjectid

关于iphone - CoreData Context 合并后如何获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2980588/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com