我正在尝试实现一个 P2P 应用程序。我尝试做的是在设备之间传输自定义 NSObject 类的数据。我无法弄清楚 GKSession 何时调用“receivedData”方法。
这是我所做的
通常的连接并显示与对等点的对话框
当应用程序接收到对等点的状态更改并且状态为已连接时,我将使用 NSCoding 方法将数据发送到所有对等点(理想情况下,这应该在每个对等点接受连接时调用)
在 receivedData 中,我正在解码 NSData 并取回 NSObject 实例
问题是两个设备上都没有调用session:peer:didChangeState:方法。它只是在点击 PeerPicker 警报中的“连接”按钮的设备上被调用。
问题
何时调用 didChangeState 以及为谁调用?连接时不应该为每个对等方调用它吗?
何时调用 receivedData: 方法以及为谁调用?调用它是为了确认收到消息(握手)还是只是为了传输其他对等方发送的数据?
谢谢你的帮助。