gpt4 book ai didi

cocoa - IKImageBrowserView "--ImageKit Error: reloadData called in non main thread"

转载 作者:行者123 更新时间:2023-12-03 17:44:00 27 4
gpt4 key购买 nike

我正在编写一个使用 IKImageBrowserView 的 Cocoa Mac 应用程序。当我调用以下内容时:

[imageBrowserView reloadData];

调试器控制台打印以下内容:

--ImageKit Error: reloadData called in non main thread

我尝试将 reloadData 方法放入另一个方法中,然后调用以下方法:

[self performSelectorOnMainThread:@selector(reloadMyView) withObject:nil waitUntilDone:NO];

但我仍然遇到相同的 ImageKit 错误。有什么想法吗?

最佳答案

** 已修复 **

原因是使用 Bindings 从 NSArrayController 填充我的 IKImageBrowserView 和 NSOperation 的组合,后者在填充更新后调用保存在它自己的 NSManagedObjectContext 上。

当 NSOperation 中的上下文保存时,我有一个通知观察器,这样我就可以将 mergeChangesFromContextDidSaveNotification 合并到我的主线程上下文中,但我需要在 MainThread 上执行此操作。 NSArrayController 将 automaticallyPreparesContent 设置为 YES,这“也注册为其托管对象上下文的观察者”。因此,当合并是从通知中执行时,这是在与 NSOperation 相同的单独线程上完成的,因此 NSArrayController 在单独的线程上再次准备其内容,然后再次在单独的线程上更新 IKImageBrowserView导致错误/警告。

关于cocoa - IKImageBrowserView "--ImageKit Error: reloadData called in non main thread",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4641477/

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