Migration 如何在swift2中创建[String:AnyObject]数组

Migration 如何在swift2中创建[String:AnyObject]数组,migration,swift2,Migration,Swift2,此代码段使用swift,但不使用swift2编译 let settings = [ AVFormatIDKey: kAudioFormatLinearPCM, AVSampleRateKey: 44100.0, AVNumberOfChannelsKey: 1, AVLinearPCMBitDepthKey: 16, AVLinearPCMIsBigEndianKey: true ] let audioFile = AVAudioFile(forWrit

此代码段使用swift,但不使用swift2编译

let settings = [
    AVFormatIDKey: kAudioFormatLinearPCM,
    AVSampleRateKey: 44100.0,
    AVNumberOfChannelsKey: 1,
    AVLinearPCMBitDepthKey: 16,
    AVLinearPCMIsBigEndianKey: true
]

let audioFile = AVAudioFile(forWriting:url, settings:settings, error:&error)
我得到一个“表达式类型不明确,没有更多上下文”错误。如果将赋值更改为[String:Any],则AVAudioFile会出错,因为它需要[String:AnyObject]数组

let settings:[String : Any] = [
   AVFormatIDKey: kAudioFormatLinearPCM,
    AVSampleRateKey: 44100.0,
    AVNumberOfChannelsKey: 1,
    AVLinearPCMBitDepthKey: 16,
    AVLinearPCMIsBigEndianKey: true
]

let audioFile = try! AVAudioFile(forWriting:url, settings:settings)

有人知道如何在swift2中创建[String:AnyObject]数组吗?

kAudioFormatLinearPCM
是UInt32,但Swift 2需要Int:

let settings: [String:AnyObject] = [
    AVFormatIDKey: Int(kAudioFormatLinearPCM),
    AVSampleRateKey: 44100.0,
    AVNumberOfChannelsKey: 1,
    AVLinearPCMBitDepthKey: 16,
    AVLinearPCMIsBigEndianKey: true
]

工作完美。我没听清楚UInt32到Int的转换