所以我在一个iOS应用程序中使用GCDAsyncSocket。它运行在GCD线程上。当套接字接收到数据时,它会改变游戏状态,该状态存储在名为Game的共享数据模型中(游戏使用同步来防止数据损坏)。我的问题是,通知GUI的正确方法是什么?
如果我有数据模型“Game”通知控制器GUI,那么不会在GCD线程上运行更新,从而导致问题吗?
如果我离开,只需指出正确的方向。
答案 0 :(得分:1)
dispatch_async(dispatch_get_main_queue(), ^{
// update UI, this runs on Main thread.
});
OR:
[anObject performSelectorOnMainThread:@selector(updateUI) withObject:anObjectOrNil waitUntilDone:NO];