我已跟随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?
答案 0 :(得分:0)
由于invitationHandler的第二个参数不是可选的,您必须传入有效的会话。
创建会话时,必须始终传入有效的MCPeerID。例如:
var session: MCSession?
...
session = MCSession(peer: thisPeer)
通常,会话应创建一次并保存为类的实例变量。