gpt4 book ai didi

ios - 我的 NSManagedObjectID 保存后仍然是临时的。但为什么?

转载 作者:行者123 更新时间:2023-11-29 00:52:18 26 4
gpt4 key购买 nike

我保存了我的托管对象。但是我的NSManagedObjectID保存后还是临时的。为什么?

dispatch_async(privateQueue, ^{
__block NSMutableArray *ids = [NSMutableArray array];

[[[LPAppDelegate instance] privateContext] performBlockAndWait:^{

if ([responseObject isKindOfClass:[NSDictionary class]]) {
id arr = ((NSDictionary*)responseObject)[@"results"];
for (int i=0; i < ((NSArray *)arr).count; i++) {
LPFilm *film = [LPFilm MR_createEntityInContext:privateContext];
[ids addObject:film.objectID];
}
}

NSError *error = nil;
[privateContext save:&error];
if (error) {
NSLog(@"___fetch service error: %@", [error localizedDescription]);
}
}];


for (NSManagedObjectID *objID in ids) {
if (objID.isTemporaryID) {
NSLog(@"__tempID %@", objID);
}
}
});

最佳答案

当您保存更改时,新的 NSManagedObject 实例会获得一个新的对象 ID。以前存在的 NSManagedObjectID 实例不会就地转换,它们会被新实例替换。但是您必须向托管对象询问其新 ID。

在您的例子中,您在保存之前保存了一组对象 ID。即使您保存更改,这些对象也永远不会更改。但是,如果您返回托管对象并再次询问它们的对象 ID,,您将得到不同的结果,这不会是暂时的。

关于ios - 我的 NSManagedObjectID 保存后仍然是临时的。但为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37995254/

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