Swift 2.0:expression式的types是不明确的,没有更多的上下文?

以下用于Swift 1.2中的工作:

var recordSettings = [ AVFormatIDKey: kAudioFormatMPEG4AAC, AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue, AVEncoderBitRateKey : 320000, AVNumberOfChannelsKey: 2, AVSampleRateKey : 44100.0] 

现在,它给出了错误:

“typesexpression是不明确的,没有更多的上下文”。

你可以给编译器更多的信息:

 let recordSettings : [String : Any] = [ AVFormatIDKey: kAudioFormatMPEG4AAC, AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue, AVEncoderBitRateKey : 320000, AVNumberOfChannelsKey: 2, AVSampleRateKey : 44100.0 ] 

遵守recordSettings参数所要求的[String : AnyObject]格式; 除了@ Unheilig的回答,你需要将你的intsfloats转换为NSNumber

 let recordSettings : [String : AnyObject] = [ AVFormatIDKey: NSNumber(unsignedInt: kAudioFormatMPEG4AAC), AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue as NSNumber, AVEncoderBitRateKey : 320000 as NSNumber, AVNumberOfChannelsKey: 2 as NSNumber, AVSampleRateKey : 44100.0 as NSNumber ] 

我也得到这个错误消息试图初始化与零的可选项数组:

 var eggs : [Egg] = Array<Egg>(count: 10, repeatedValue: nil) 

expression式types'Array <Egg>'是不明确的,没有更多的上下文。

[Egg]更改为[Egg?]修复了错误。