【发布时间】:2014-07-10 20:42:25
【问题描述】:
一般问题:我有一个要转换为 ConstUnsafePointer 的对象。我尝试过的一切似乎都失败了……我该怎么做?我之前在 DP2 中可以做到这一点,但在 DP3 中无法解决。
以前,我的代码如下所示:
var bpData = AUSamplerBankPresetData(bankURL: Unmanaged<CFURL>(_private: soundBankURL), bankMSB: UInt8(kAUSampler_DefaultMelodicBankMSB), bankLSB: UInt8(kAUSampler_DefaultBankLSB), presetID: presetID, reserved: 0)
let bpDataPointer: CConstVoidPointer = &bpData
// set the kAUSamplerProperty_LoadPresetFromBank property
result = AudioUnitSetProperty(samplerAudioUnit,
UInt32(kAUSamplerProperty_LoadPresetFromBank),
UInt32(kAudioUnitScope_Global),
0, bpDataPointer, 8)
但是,现在 CConstVoidPointer 不再存在,并已被 ConstUnsafePointer 取代。 AudioUnitSetProperty 方法如下所示:
func AudioUnitSetProperty(inUnit: AudioUnit, inID: AudioUnitPropertyID, inScope: AudioUnitScope, inElement: AudioUnitElement, inData: ConstUnsafePointer<()>, inDataSize: UInt32) -> OSStatus
但是,如果我将 CConstVoidPointer 更改为 ConstUnsafePointer 我会收到错误:
'inout AUSamplerBankPresetData' 不能转换为 'ConstUnsafePointer'
有人有什么想法吗?谢谢。
【问题讨论】:
-
这在 beta6 中不起作用:var bpData = AUSamplerBankPresetData(bankURL: Unmanaged
(_private: soundBankURL), bankMSB: UInt8(kAUSampler_DefaultMelodicBankMSB), bankLSB: UInt8(kAUSampler_DefaultBankLSB), presetID: presetID , 保留:0) -
我发布了一个包含 beta 6 更新的新答案。我认为我问了这个问题 beta 3。
标签: swift