以下はSwift 1.2で機能していました。
var recordSettings = [
AVFormatIDKey: kAudioFormatMPEG4AAC,
AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue,
AVEncoderBitRateKey : 320000,
AVNumberOfChannelsKey: 2,
AVSampleRateKey : 44100.0]
今、それはエラーを与えます:
「型表現は文脈がなければあいまいです」。
recordSettings
パラメーターで必要な[String : AnyObject]
形式に準拠するには; @Unheiligの答えに加えて、ints
とfloats
を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
]
コンパイラに詳細情報を提供できます。
let recordSettings : [String : Any] =
[
AVFormatIDKey: kAudioFormatMPEG4AAC,
AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue,
AVEncoderBitRateKey : 320000,
AVNumberOfChannelsKey: 2,
AVSampleRateKey : 44100.0
]
オプションの配列をnilで初期化しようとすると、このエラーメッセージも表示されます。
var eggs : [Egg] = Array<Egg>(count: 10, repeatedValue: nil)
式タイプ 'Array <Egg>'は、コンテキストがなくあいまいです。
[Egg]
を[Egg?]
に変更すると、エラーが修正されました。