我正在尝试将一些C代码转换为swift.(为什么? - 如果你问的话,在OS-X中使用CoreMIDI)
C代码是这样的
void printPacketInfo(const MIDIPacket* packet) {
int i;
for (i=0; i<packet->length; i++) {
printf("%d ", packet->data[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
而MIDIPacket的定义是这样的
struct MIDIPacket
{
MIDITimeStamp timeStamp;
UInt16 length;
Byte data[256];
};
Run Code Online (Sandbox Code Playgroud)
我的斯威夫特是这样的
func printPacketInfo(packet: UnsafeMutablePointer<MIDIPacket>){
// print some things
print("length", packet.memory.length)
print("time", packet.memory.timeStamp)
print("data[0]", packet.memory.data.1)
for i in 0 ..< packet.memory.length {
print("data", i, packet.memory.data[i])
}
}
Run Code Online (Sandbox Code Playgroud)
但这会产生编译错误
错误:类型'(UInt8,UInt8,..剪切.. UInt8,UInt8,UInt8)'没有下标成员
那么如何取消引用固定大小数组的第i个元素呢?
| 归档时间: |
|
| 查看次数: |
1561 次 |
| 最近记录: |