调用 AVAudioRecorder 的初始化程序 - Swift 2.0

Invoking initializer for AVAudioRecorder - Swift 2.0

这似乎是我在过渡到 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()*

它给我错误:**

"Cannot invoke initializer for type 'AVAudioRecorder' with an argument list type '(URL: NSURL, settings:nil)'."

**

顺便说一句,filePath 是 NSURL 类型。谢谢大家的帮助!

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

init(URL url: NSURL, settings: [String : AnyObject]) throws

正如您从该声明中清楚地看到的那样,这一行几乎所有内容都是错误的:

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

  • 这是一个throws初始化器;您必须说 try 并将其包含在 do/catch 结构中。