2015-12-03 42 views
0

我遵循this tutorial实施Multipeer连接。 在新雨燕版本为广告客户的默认委托是swift Mulitpeer连接,使用邀请处理程序取消邀请

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我试过self.appDelegate.mpcManager.invitationHandler(false, MCSession())但这导致了崩溃。

我应该在会话中通过什么来取消邀请,而不是零?

回答

0

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

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

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

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