【发布时间】:2014-06-12 15:50:49
【问题描述】:
一些 Cocoa 类,例如 AVFoundation 的 AVAudioPCMBuffer 处理浮点数据数组,它们在 Objective-C 中使用类型 float * 公开。
例如 AVAudioPCMBuffer 的 Objective-C 原型是:
@property(nonatomic, readonly) float *const *floatChannelData
等效的 Swift 是:
var floatChannelData: UnsafePointer<UnsafePointer<CFloat>> { get }
可以使用UnsafeArray() 将内部UnsafePointer<> 解压缩为UnsafeArray<CFloat>,但是如何将其转换为常规的Swift Array<Float>?
我可以遍历每个浮点数,将每个浮点数复制到一个新数组中,但这很昂贵,而且对于大型数组来说并不可行。
【问题讨论】: