我的Mac应用程序中有一个NSCollectionView,它包含一些图标。同时,我使用NSOperationQueue作为任务调度程序来排队一些操作。在一个NSOperation中,我修改了NSCollectionView的内容,当内容发生变化时,视图应该立即更新。
如果我在主线程中更新它,那么它的效果非常好。如果我在NSOperation :: main()的末尾放置相同的源代码,那么NSCollectionView将完全为空。
这是某种错误还是以错误的方式进行?
谢谢!
答案 0 :(得分:2)
必须在主线程上执行与UI元素的所有交互。
您可以使用performSelectorOnMainThread:withObject:waitUntilDone:
方法来帮助您从后台线程更新UI元素。