- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想从 iPhone 连接 Alexa,因为我正在使用一个在 Github 上用 swift 2.2 编写的示例
所以我需要将其转换为 Swift 3.0
从 xcode 从 Swift 2.2 迁移到 Swift 3.0 已完成,解决了几乎所有错误,现在唯一剩下的错误与 AudioQueueBufferRef 有关
swift 2.2:
self.recorderState = RecorderState(
setupComplete: false,
dataFormat: AudioStreamBasicDescription(),
queue: UnsafeMutablePointer<AudioQueueRef>.alloc(1),
buffers: Array<AudioQueueBufferRef>(count: numberBuffers, repeatedValue: nil),
recordFile: AudioFileID(),
bufferByteSize: 0,
currentPacket: 0,
isRunning: false,
recordPacket: 0,
errorHandler: nil)
Swift 3.0:(仅用于参数 buffers
)
let audioBufferQueue = Array<AudioQueueBufferRef>(repeating: nil, count: numberBuffers)
在 swift 2.2 中工作正常,但在 swift 3.0 中显示错误
/Users/macbookpro/Downloads/iOS-Alexa-master copy/iOS Alexa/AVS/SimplePCMRecorder.swift:28:32: Expression type 'Array' (aka 'Array>') is ambiguous without more context
SimplePCMRecorder of Swift 2.2 on Github
我在 google 和 stackoverflow 上搜索过,但没有找到解决方案。我尝试重写和谷歌搜索,但没有解决。
谁能告诉我如何解决这个问题?
最佳答案
在 Swift 3 中,使用 AudioQueueBufferRef?
而不是 AudioQueueBufferRef
:
let buffers = Array<AudioQueueBufferRef?>(repeating: nil, count: numberBuffers)
// and allocate each buffer
for i in 0 ..< buffers.count {
AudioQueueAllocateBuffer(inQueue!, bufferSize, &buffers[i])
}
关于ios - SimplePCMRecorder 中的 AudioQueueBufferRef 在 swift 3 中显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42923725/
我想从 iPhone 连接 Alexa,因为我正在使用一个在 Github 上用 swift 2.2 编写的示例 所以我需要将其转换为 Swift 3.0 从 xcode 从 Swift 2.2 迁移
我是一名优秀的程序员,十分优秀!