swift:分配哪个设备通过multipeer发送数据

时间:2018-03-07 19:03:07

标签: ios swift multiplayer multipeer-connectivity

我们正在使用Swift 4编写iOS应用程序。此应用程序正在使用多种连接。如果一个玩家正在发送数据/图像,我们希望识别数据/图像从哪个设备发送。

func session(_ session: MCSession, didReceive data: Data, fromPeerpeerID: MCPeerID) {
    if DataManager.string == false {
        let toSaveArray = NSKeyedUnarchiver.unarchiveObject(with: data as Data) as! [Int]
        peers.append(peerID)
        print(peers)
    NSLog("Peer \(peerID) has sent message \(toSaveArray)")
    DataManager.speicher1 = toSaveArray



    }else if DataManager.string == true {
        let toSaveString = NSKeyedUnarchiver.unarchiveObject(with: data as Data) as! String
        NSLog("Peer \(peerID) has sent message \(toSaveString)")
        DataManager.speicher2 = toSaveString
    }
}

1 个答案:

答案 0 :(得分:0)

如果您想传递设备的用户名,可以导入UIKit并通过拨打UIDevice.currentDevice().name进行访问。

获得该数据后,您可以在与其他对等方连接时将其与任何其他数据一起传递。

这是我在Swift 2应用程序中的设备之间来回传递字符串数据的方法:

try self.session.sendData((boolString.dataUsingEncoding(NSUTF8StringEncoding))!, toPeers: self.session.connectedPeers, withMode: MCSessionSendDataMode.Reliable) 

请注意,此示例将向连接到会话的所有对等方发送数据。

使用Multipeer Connectivity框架,此示例已从this tutorial解除。