일부 코코아 클래스, 예를 들어 AVFoundation의 AVAudioPCMBuffer
은 float *
유형을 사용하여 Objective-C에 노출 된 부동 소수점 데이터 배열을 처리합니다.UnsafeArray <CFloat>을 Swift의 배열 <Float>으로 어떻게 변환합니까?
예를 들어 AVAudioPCMBuffer
용 대물-C 프로토 타입은 다음
@property(nonatomic, readonly) float *const *floatChannelData
스위프트 당량이다
는var floatChannelData: UnsafePointer<UnsafePointer<CFloat>> { get }
내부 UnsafePointer<>
는 UnsafeArray()
를 사용 UnsafeArray<CFloat>
을 풀었하지만 방법이 수 가능 그런 다음 보통 스위프트 Array<Float>
으로 변환 하시겠습니까?
각 플로트를 반복하면서 각 어레이를 새로운 Array로 복사 할 수는 있지만 비용이 많이 들며 대형 어레이에서는 실제로 구현할 수 없습니다.