swift Mulitpeer Connectivity,使用邀请处理程序取消邀请

时间:2015-12-03 07:31:55

标签: ios swift swift2 xcode7 multipeer-connectivity

我已跟随this tutorial实施多重连接。 在新的swift版本中,广告客户的默认代理是

ArraySlice<String>

之前的类型是func advertiser(advertiser: MCNearbyServiceAdvertiser, didReceiveInvitationFromPeer peerID: MCPeerID, withContext context: NSData?, invitationHandler: ((Bool, MCSession) -> Void)) { self.invitationHandler = invitationHandler delegate?.invitationWasReceived(peerID.displayName) }

根据当前样本,当用户拒绝邀请时,呼叫采用此格式invitationHandler : ((Bool, MCSession!)->Void)!

但是在新版本中它不接受self.appDelegate.mpcManager.invitationHandler(false, nil)我已经尝试nil但是这导致了崩溃。

我应该在会话中传递什么来取消邀请而不是nil?

1 个答案:

答案 0 :(得分:0)

由于invitationHandler的第二个参数不是可选的,您必须传入有效的会话。

创建会话时,必须始终传入有效的MCPeerID。例如:

var session: MCSession?
...
session = MCSession(peer: thisPeer)

通常,会话应创建一次并保存为类的实例变量。