ios - 如何在 Swift 中通过发送 multipeersession 发送 [Double] 数组?
问题描述
我有 var list: [Double] = [1.02, 0.97, ...] 并且我正在尝试将其发送给会话中的同伴。
我使用的是 Apple 提供的模板,因此他们已经设置了接收数据函数和 sendtoallpeers() 函数(如下):
func sendToAllPeers(_ data: Data) {
do {
try session.send(data, toPeers: session.connectedPeers, with: .reliable)
} catch {
print("error sending data to peers: \(error.localizedDescription)")
}
}
接收到的数据处理程序如下:
func receivedData(_ data: Data, from peer: MCPeerID) {
do {
if let worldMap = try NSKeyedUnarchiver.unarchivedObject(ofClass: ARWorldMap.self, from: data) {
} else
if let anchor = try NSKeyedUnarchiver.unarchivedObject(ofClass: ARAnchor.self, from: data) {
} else if let list = try NSKeyedUnarchiver.unarchivedObject(ofClass: [Double].self, from: data) {
}
最后一部分是它失败的地方,说“调用中的参数标签不正确(有'ofClass:from:',预期'ofClasses:from:')”
Apple 如何构建 worldMap 和 anchor 的发送函数如下:
let anchor = ARAnchor(name: "basicBoard", transform: hitTestResultForLater!.worldTransform)
guard let data = try? NSKeyedArchiver.archivedData(withRootObject: anchor, requiringSecureCoding: true)
else { fatalError("can't encode anchor") }
self.multipeerSession.sendToAllPeers(data)
我如何组织发送列表:
guard let data2 = try? NSKeyedArchiver.archivedData(withRootObject: list, requiringSecureCoding: true)
else { fatalError("can't encode list") }
self.multipeerSession.sendToAllPeers(data2)
我无法弄清楚我做错了什么。我整天在网上搜索答案,但找不到答案。有人可以向我解释通过 multipeersession 发送数组的正确方法吗?
解决方案
推荐阅读
- user-interface - 带有可能失败的操作的 MVC / MV 模式 UI
- python - 这是某种数组(Python)吗?
- php - 我如何每天从早上 6 点到早上 8 点调用所有数据
- java - 循环跳到最后一次迭代
- php - 使用注册表获取下载文件夹路径 - PHP
- javascript - 模仿div中的textarea
- c# - 在模型状态验证 ASP.NET MVC 之前更改模型
- android - 返回按钮 - Android 工作室
- java - RandomAccess 基本上是什么?为什么我们使用 RandomAccess?
- php - preg_replace 不能按预期使用数字字符串数据