试图将顶点列表解压缩为float

时间:2017-11-20 08:49:52

标签: swift

我有这种情况需要发送某种OSC消息,不幸的是,OSC列表需要采用这种格式:float,float,float .....

原始数据是一些顶点数据,vector_float3。

我确信这应该很简单,但我在试图“解压缩”清单时遇到了麻烦。

dataY是vector_float3值的列表。我不知道如何处理这个,据说有一张地图,但只适用于String?

如果我手动完成,我必须手动输入列表中的每一项:

    var mymessage:[Float] = []

    for data in dataY {
        mymessage.append(data.x)
        mymessage.append(data.y)
        mymessage.append(data.z)
    }


    let message = OSCMessage( OSCAddressPattern("/hello/osc"),
                              mymessage[0], mymessage[1], mymessage[2],
                              mymessage[3], mymessage[4], mymessage[5],
                              mymessage[6], mymessage[7], mymessage[8]
    )

1 个答案:

答案 0 :(得分:2)

vector_float3是一个元组,并且没有简单的转换 在Swift中将元组转换为数组,您必须访问每个元组成员 明确。你可以用

更紧凑地实现这一目标
let myMessage = Array(dataY.map { [$0.x, $0.y, $0.z] }.joined())