我如何将this PGMidi example code翻译成RubyMotion? The documentation the MIDIPacketList提到了特别的警告,我不确定如何在RubyMotion中解释它们。例如:
请注意,列表中的数据包虽然定义为数组,但可能无法作为数组访问,因为它们是可变长度的。
这是一个例子,进一步向下,就我在翻译中所做的那样:
- (void) midiSource:(PGMidiSource*)midi midiReceived:(const MIDIPacketList *)packetList
{
[self performSelectorOnMainThread:@selector(addString:)
withObject:@"MIDI received:"
waitUntilDone:NO];
const MIDIPacket *packet = &packetList->packet[0];
for (int i = 0; i < packetList->numPackets; ++i)
{
[self performSelectorOnMainThread:@selector(addString:)
withObject:StringFromPacket(packet)
waitUntilDone:NO];
packet = MIDIPacketNext(packet);
}
}
我知道我正在丢失使用'packet'local var和'packetList'引用/解除引用的指针,但是我很难弄清楚如何纠正它:
def midiSource(midi, midiReceived:packetList)
self.performSelectorOnMainThread('addString',
withObject:'MIDI received:',
waitUntilDone:false)
packet = packetList.packet[0]
i = 0
while i < packetList.numPackets
i += 1
self.performSelectorOnMainThread('addString',
withObject:stringFromPacket(packet),
waitUntilDone:false)
packet = MIDIPacketNext(packet)
end
end
感谢任何指导!
答案 0 :(得分:0)
如果它正在处理你正在寻找的指针,RubyMotion提供了Pointer
类。 http://www.rubymotion.com/developer-center/guides/runtime/#_pointers