如何將this PGMidi example code翻譯成RubyMotion? The documentation the MIDIPacketList提到了特別的警告,我不確定如何在RubyMotion中對它們進行解釋。例如:如何使用RubyMotion遍歷MIDIPacketList?
請注意,列表中的數據包定義爲數組時,可能無法作爲數組訪問,因爲它們是可變長度的。
這裏的例子,進一步回落,據我在翻譯已經得到了:
- (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);
}
}
我知道我失去了指針引用/用「包」解引用本地變量和'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
感謝您的任何指導!
你會得到什麼錯誤?一個觀察你的添加字符串選擇器應該最有可能在最後例如冒號'addString:' –
嘿保羅,謝謝你的回覆!我決定從RubyMotion中休息一下,並深入挖掘Objective-C。 RubyMotion的學習曲線在Objective-C中沒有更好的基礎的情況下證明了令人不快的陡峭。一旦我踏上了我的腳,我會更新這個線程。 –