gpt4 book ai didi

iphone - mergeChangesFromContextDidSaveNotification 花了将近一分钟

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

我在创建几百个托管对象的单独线程中有一个托管对象上下文,当它保存时,将保存通知传递给主线程,并且我的其他上下文(在主线程上)被更新:

在线程

[ApplicationDelegate performSelectorOnMainThread:@selector(managedObjectContextDidSave:) 
withObject:notification
waitUntilDone:NO];

问题是合并需要很长时间,有时需要 40-50 秒,这会锁定主线程和 UI。有什么理由会花这么长时间来更新吗?

编辑

这似乎仅在存在当前正在显示将受合并影响的数据的获取结果 Controller 时才会发生。有任何想法吗?

最佳答案

我假设您的 NSFetchedResultsController有一个 NSFetchedResultsControllerDelegate由于合并,它必须处理大量更新。这些更新将导致表中的大量事件,这可能会导致滞后。

您可能需要做的是创建一个包装方法,当在主线程上调用该方法时,该方法会暂时从 NSFetchedResultsController 中删除委托(delegate)。 ,然后调用 managedObjectContextDidSave ,然后刷新表,然后恢复 NSFetchedResultsControllerDelegate .

关于iphone - mergeChangesFromContextDidSaveNotification 花了将近一分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1870174/

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