ios - 快速多点连接,使用邀请处理程序取消邀请

标签 ios swift swift2 xcode7 multipeer-connectivity

我关注了this tutorial用于实现多点连接。 在新的 swift 版本中,广告商的默认委托(delegate)是

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())但这导致了崩溃。

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

最佳答案

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

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

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

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

关于ios - 快速多点连接,使用邀请处理程序取消邀请,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34060173/

相关文章:

ios - 如何使用 RxSwift 从返回 Observable 的服务中获取值

swift - 注册/登录 swift 2.0 错误

ios - UICollectionView - 如何设置行的背景颜色

ios - 无法调用非函数类型的值 'UIImage?'

json - 使用 swift 2 在 Twitter 中发布图像

ios - Google Cloud Endpoints 生成的 iOS 客户端无法正常工作

ios - 将 MotionModel 记录分类为基于日期的部分以插入 ProMotion TableScreen 的最有效方法?

ios - 插入多个自定义补充 View 时的流布局动画故障

swift - Realm 中的索引属性

ios - Grand Central Dispatch EXC_BAD_ACCESS 异常