swift Multipeer Connectivity,使用邀请处理程序取消邀请
Posted
技术标签:
【中文标题】swift Multipeer Connectivity,使用邀请处理程序取消邀请【英文标题】:swift Mulitpeer Connectivity, canceling invitation using invitation handler 【发布时间】:2015-12-03 07:31:54 【问题描述】:我已关注 this tutorial 以实现多点连接。 在新的 swift 版本中,广告商的默认委托是
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())
但这导致了崩溃。
我应该在会话中传递什么来取消邀请而不是 nil?
【问题讨论】:
【参考方案1】:由于invitationHandler的第二个参数不是可选的,你必须传入一个有效的会话。
创建会话时,您必须始终传入有效的 MCPeerID。例如:
var session: MCSession?
...
session = MCSession(peer: thisPeer)
通常会话应该创建一次并作为类的实例变量保存。
【讨论】:
以上是关于swift Multipeer Connectivity,使用邀请处理程序取消邀请的主要内容,如果未能解决你的问题,请参考以下文章
如何使用swift 4查看Multipeer Connectivity框架中的MCBrowserViewController
Swift2.0 Multipeer Connectivity 无法连接
swift Multipeer Connectivity,使用邀请处理程序取消邀请
在 Swift 中通过 Multipeer Connectivity 临时同步两个 iOS 设备
如何使用 Multipeer Connectivity (Swift 3) 在会话中通过 didReceiveData() 调用 table.reloadData