Swift 2.0: Type of Expression is ambiguous without more context?
You could give the compiler more information:
let recordSettings : [String : Any] =[ AVFormatIDKey: kAudioFormatMPEG4AAC, AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue, AVEncoderBitRateKey : 320000, AVNumberOfChannelsKey: 2, AVSampleRateKey : 44100.0]
To comply to the required [String : AnyObject]
format required by recordSettings
parameter; In addition to @Unheilig's answer, you'll need to convert your ints
and floats
to 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]
I also got this error message trying to initialise an array of optionals with nil:
var eggs : [Egg] = Array<Egg>(count: 10, repeatedValue: nil)
Expression Type 'Array<Egg>' is ambiguous without more context.
Changing [Egg]
to [Egg?]
fixed the error.