从socket-iOS接收实时数据后更新GUI的正确方法

时间:2013-11-03 09:31:45

标签: ios multithreading sockets user-interface

所以我在一个iOS应用程序中使用GCDAsyncSocket。它运行在GCD线程上。当套接字接收到数据时,它会改变游戏状态,该状态存储在名为Game的共享数据模型中(游戏使用同步来防止数据损坏)。我的问题是,通知GUI的正确方法是什么?

如果我有数据模型“Game”通知控制器GUI,那么不会在GCD线程上运行更新,从而导致问题吗?

如果我离开,只需指出正确的方向。

1 个答案:

答案 0 :(得分:1)

dispatch_async(dispatch_get_main_queue(), ^{
// update UI, this runs on Main thread.
});

OR:

[anObject performSelectorOnMainThread:@selector(updateUI) withObject:anObjectOrNil waitUntilDone:NO];