我正在尝试创建一些iOS应用,该应用可以通过MultiPeer Connectivity框架由OS X应用管理。我是使用此框架的新手,但到目前为止一切正常,并且我想知道如果连接丢失,是否可以自动连接到同级。

我在stackoverflow和其他网站上浏览了一些想法,建议在检测到对等方丢失时使用带有功能MCNearbyServiceBrowserDelegatestartBrowsingForPeers()开始浏览对等方(此检测对我也很有效)。

在下一步中,此函数应调用一个函数:browser(browser: MCNearbyServiceBrowser, foundPeer peerID: MCPeerID, withDiscoveryInfo info: [String : String]?)中的MCNearbyServiceBrowserDelegate,但就我而言,它看起来从未调用过该函数。有任何想法吗?

谢谢

最佳答案

@dgatwood Yeap正是!谢谢。我刚刚找到了。 :)

对于其他人,如果遇到相同的情况,则必须正确地委派它,例如,在对端状态发生变化时做出反应的方法中:

appDelegate.mpcHandler.autoBrowser = MCNearbyServiceBrowser.init(peer: peerID, serviceType: "network")
appDelegate.mpcHandler.autoBrowser!.startBrowsingForPeers()
appDelegate.mpcHandler.autoBrowser!.delegate = self


当然在mpcHandler类或正在使用并继承autoBrowser:MCNearbyServiceBrowser?协议的其他类中对MCNearbyServiceBrowserDelegate进行了适当的定义...

10-04 12:29