如何在swift中将NSURL转换为CFURL?

Dmi*_*kov 6 ios swift

这是我在Swift游乐场中运行的代码:

import Foundation
import AudioToolbox

var audioURL:NSURL = NSURL.fileURLWithPath("/path")

var audioFile:UnsafePointer<AudioFileID>

var audioCfUrl:CFURL = audioURL as CFURL

AudioFileOpenURL(audioCfUrl!, Int8(kAudioFileReadPermission), 0, &audioFile)
Run Code Online (Sandbox Code Playgroud)

在最后一行我收到错误:

'NSURL' is not a subtype of CFURL
Run Code Online (Sandbox Code Playgroud)

Mar*_*n R 6

错误消息可能会产生误导.

  • audioCfUrl!是错的,因为audioCfUrl不是可选的.
  • 最后一个参数应该是AudioFileID变量的地址.

正如在(现已删除的)答案中已经说过的那样,您不必将其转换NSURLCFURL:

let audioURL = NSURL.fileURLWithPath("/path")
var audioFile : AudioFileID = nil
let status = AudioFileOpenURL(audioURL, Int8(kAudioFileReadPermission), 0, &audioFile)
Run Code Online (Sandbox Code Playgroud)