单值元组作为swift中struct的最后一个成员

gri*_*eak 9 core-audio coremidi swift

MusicPlayer的API依赖于可变长度数组作为结构的最后一个成员来处理未知大小的数据传递.查看生成的接口MusicPlayer,此方法中使用的结构将其最后一个元素呈现在单个值元组中.

例:

struct MusicEventUserData {
    var length: UInt32
    var data: (UInt8)
}
Run Code Online (Sandbox Code Playgroud)

我怀疑这一点是否已被正式曝光,但有没有人想出这种语法是红鲱鱼还是真的很重要?我不认为有办法通过swift处理任意大小的东西,但这在从C调用时有帮助吗?

gri*_*eak 0

MusicPlayer 不再像上面那样导出。从 Xcode 6.3b1 开始

typedef struct MusicEventUserData
{
    UInt32      length;
    UInt8       data[1];
} MusicEventUserData;
Run Code Online (Sandbox Code Playgroud)

这与 C 声明更接近。它仍然没有完全解释如何快速处理 API,但这是另一个问题。