切换 VC 后多点连接会话断开

Posted

技术标签:

【中文标题】切换 VC 后多点连接会话断开【英文标题】:Multipeer Connectivity Session Disconnected After Switching VC 【发布时间】:2017-03-21 03:52:37 【问题描述】:

我目前正在开发一个包含多个视图控制器的多点连接项目。我的多人连接程序在一个文件中,并扩展了我需要与按钮等交互的其他文件。我做了一些测试,我注意到当我在连接后切换视图控制器时,我得到了一些奇怪的错误。我查看了控制台,它说我有 1 个对等连接,但是当我加载下一个视图控制器时,它说它加载了 0 个对等连接。我没有收到断开连接通知,也没有说我失去了同伴。此外,如果我在其中一台设备上退出应用程序,它在另一台设备上说只有在我关闭应用程序后才会断开连接。那么为什么这样做有任何人有任何建议。如果您愿意,我可以发布代码。谢谢。

也只是一个一般性问题,会话是否意味着在 VC 切换后重置或断开连接?

这是控制台输出:

2017-03-20 22:47:12.399 MyProject[44689:1031520] Did send data to 1 peers
2017-03-20 22:47:12.399 MyProject[44689:1031520] Game Started with 1 peers
2017-03-20 22:47:12.420 MyProject[44689:1031439] View loaded with 0 peers

【问题讨论】:

你把那些 Multipeer 对象放在哪里? 所有与多点连接有关的对象都在一个文件中,任何需要与之交互的文件都调用该类。因此,任何处于活动状态的会话都从 MPC 文件进行通信。 【参考方案1】:

当我切换视图控制器时,我没有将变量传递给下一个类。是 MCSession 变量和其他与连接有关的事情。转到一个新的视图控制器,我将所有数据留在了另一个 VC 中。参考这个:Swift 3 - Passing Variables and Functions Between View Controllers

【讨论】:

以上是关于切换 VC 后多点连接会话断开的主要内容,如果未能解决你的问题,请参考以下文章

蓝牙连接立即断开多点框架

多点连接终止会话

多点连接 - 以编程方式断开对等点

后台模式下的多点连接

发送大文件/图像时,多人会话断开连接

强制多人连接关闭