![](/img/trans.png)
[英]'[NSObject]' is not convertible to '[AnyObject]'
[英]`NSDictionary` is not implicitly convertible to `[NSObject : AnyObject]`
我有這個功能:
func audioRecordingSettings() -> NSDictionary {
return [
AVFormatIDKey : kAudioFormatMPEG4AAC as NSNumber,
AVSampleRateKey : 16000.0 as NSNumber,
AVNumberOfChannelsKey : 1 as NSNumber,
AVEncoderAudioQualityKey : AVAudioQuality.Medium.rawValue as NSNumber
]
}
然后我定義了另一個:
func startRecordingAudio() {
var error: NSError?
let audioRecordingURL = self.audioRecordingPath()
audioRecorder = AVAudioRecorder(URL: audioRecordingURL, settings: audioRecordingSettings(), error: &error)
//Here the error comes.
}
它要求我在audioRecordingSetthings()
之后添加[NSObject: AnyObject]
,我不認為這是正確的解決方案。 因為當我在另一個class
調用startRecordingAudio()
時,它會在Unexpectedly found nil
時崩潰。
你只需要添加audioRecordingSettings() as [NSObject : AnyObject]
在AVAudioRecorderDelegate
:
AVAudioRecorder(URL: audioRecordingURL, settings: audioRecordingSettings() as [NSObject : AnyObject], error: &error)
另外,我會將您的方法更改為:
func audioRecordingSettings() -> [NSObject : AnyObject] {
return [
AVFormatIDKey : kAudioFormatMPEG4AAC,
AVSampleRateKey : 16000.0,
AVNumberOfChannelsKey : 1,
AVEncoderAudioQualityKey : AVAudioQuality.Medium.rawValue
]
}
您需要檢查"AVAudioRecorder"
初始化程序,它指定:
init!(URL url: NSURL!, settings: [NSObject : AnyObject]!, error outError: NSErrorPointer)
因此,您需要將設置轉換為[NSObject : AnyObject]
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.