1

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

如果我让数据模型“游戏”通知 GUI 控制器,那不会在 GCD 线程上运行更新并因此导致问题吗?

如果我走得很远,请指出我正确的方向。

4

1 回答 1

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

或者:

[anObject performSelectorOnMainThread:@selector(updateUI) withObject:anObjectOrNil waitUntilDone:NO];
于 2013-11-03T09:41:03.287 回答