Swift 2.0: Type of Expression is ambiguous without more context? Swift 2.0: Type of Expression is ambiguous without more context? swift swift

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.