gpt4 book ai didi

ios - 核心数据是否会延迟刷新数据模型?

转载 作者:行者123 更新时间:2023-12-01 16:51:38 26 4
gpt4 key购买 nike

我遇到一个问题,当我尝试修改核心数据时,核心数据看不到谓词中的任何更改。我花了很多时间试图找出为什么我的获取的属性不能向我显示正确的结果(请参见下面的代码),最后在又一次喝咖啡休息后,我发现(突然!)我的获取的属性开始正常工作。更新数据模型有一些延迟吗?
还是我应该更经常休息一下?

-(void)printData{
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"Empl"];
NSError *error;
NSArray *empls = [[self managedObjectContext] executeFetchRequest:request error:&error];

for (NSManagedObject *emplMO in empls){

NSString *output = [NSString stringWithFormat:@"%@ \n", [emplMO valueForKey:@"emplName"]];
[self.managedObjectContext refreshObject:emplMO mergeChanges:YES];
NSArray *allChairs = [emplMO valueForKey:@"allChairs"];
output = [output stringByAppendingFormat:@" has %d chairs \n", allChairs.count];
NSLog(@"%@", output);
}
}

最佳答案

您是否在整个应用程序中使用单个NSManagedObjectContext?

来自Apple Developer Reference:

NSManagedObjectContext的实例代表应用程序中的单个“对象空间”或便笺簿。通过上下文,您可以从持久性存储中检索或“获取”对象,对这些对象进行更改,然后放弃更改或再次通过上下文将它们提交回持久性存储。上下文负责监视其对象中的更改,并维护撤消管理器,以便您可以对撤消和重做进行更细粒度的控制。

听起来好像您有两个上下文,则需要将contextA中更改的对象持久保存以存储,然后再次退出,以便contextB看到它们... UIManagedDocument确实会自动保存。如果您使用2个或更多上下文,您可能会在核心数据更新/获取中看到轻微的延迟/差距。

关于ios - 核心数据是否会延迟刷新数据模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15225138/

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