当我们使用MCSessionState时,didChangeState响应非常慢,我们无法find原因

我们正在使用以下代码通知用户关于对等连接状态。 但有一个问题“ labelState.text = state.displayName ”在“ println ("State Changed to \(state.displayName) “)显示状态后将近10秒钟更改标签文本。是否有人面临同样的问题。

  func session(session: MCSession!, peer peerID: MCPeerID!, didChangeState state: MCSessionState) { println("State Changed to \(peerID.displayName)") labelState.text = peerID.displayName } 

MCSessionDelegatecallback不在主线程上。 如果您在该function中进行UI更改,则需要在主线程上执行此操作。

 dispatch_async(dispatch_get_main_queue()) { labelState.text = state.displayName } 

你也应该在MCPeerID对象上使用displayName ,而不是仅仅是一个枚举的MCSessionState