这似乎是我在过渡到 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
设置。如果没有设置,则传递一个空字典。这是一个
抛出
初始化器;您必须说try
并将其包含在do/catch
结构中。
关于swift - 调用 AVAudioRecorder 的初始化程序 - Swift 2.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31775398/