调用AVAudioRecorder的初始值设定项-Swift 2.0

调用AVAudioRecorder的初始值设定项-Swift 2.0,swift,avaudiorecorder,swift2,initializer,Swift,Avaudiorecorder,Swift2,Initializer,这似乎是我在向Swift 2.0过渡时遇到的一个问题: 我正在尝试初始化我的AVAudioRecorder,设置参数(我曾经给过nil)将不再接受。想法 *var session = AVAudioSession.sharedInstance() do{ try session.setCategory(AVAudioSessionCategoryPlayAndRecord) } catch{ } audioR

这似乎是我在向Swift 2.0过渡时遇到的一个问题:

我正在尝试初始化我的AVAudioRecorder,设置参数(我曾经给过nil)将不再接受。想法

*var session = AVAudioSession.sharedInstance()
        do{
            try session.setCategory(AVAudioSessionCategoryPlayAndRecord)
        } catch{
        }
        audioRecorder = AVAudioRecorder(URL: filePath, settings: nil)
        audioRecorder.meteringEnabled = true
        audioRecorder.prepareToRecord()
        audioRecorder.record()*
它给了我一个错误:**

无法使用参数调用类型“AVAudioRecorder”的初始值设定项 列表类型“(URL:NSURL,设置:nil)”

**


顺便说一下,文件路径的类型是NSURL。谢谢大家的帮助

遇到这样的问题时,请查看标题中的声明:

从该声明中,您可以清楚地看到,这一行的所有内容都是错误的:

audioRecorder = AVAudioRecorder(URL: filePath, settings: nil)
  • 您不能提供
    nil
    设置。如果没有设置,请传递空字典

  • 这是一个
    抛出的
    初始值设定项;您必须说
    try
    ,并将其包含在
    do/catch
    结构中


这就解决了问题。我正在找的是那本空字典。另外,谢谢你提醒我掷初始值。这将是下一个问题。都修好了!再次感谢!老实说,我想知道这是否是一个bug。当然,在这里通过
nil
应该是合法的——这一直都是合法的。我要报告。苹果告诉我这不是一个bug。你不应该通过
nil
。需要设置。
audioRecorder = AVAudioRecorder(URL: filePath, settings: nil)