2015-09-10 9 views
8

Ben Swift 2.0 yükselttikten ve ben, bir ses kayıt denediğimde oldukça bu anlayamıyorum bir ses kaydedici için daha bağlam olmadan belirsiz sorununu giderme:ifadesinin tipi hızlı 2

Tipi ifade fazla bağlam olmadan belirsiz var recordSettings

üzerinde

bu hatayı daha önemli fixt için ne yapmalıyım, neden?

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

    var dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 
    var docsDir: AnyObject = dirPaths[0] 
    var soundFilePath = docsDir.stringByAppendingPathComponent("tempRecordzz") 
    var soundFileURL:NSURL = NSURL(fileURLWithPath: soundFilePath) 



    var error: NSError? 
    do { 
     recorder = try AVAudioRecorder(URL: soundFileURL, settings: recordSettings) 
    } catch var error1 as NSError { 
     error = error1 
     recorder = nil 
    } 

cevap

15

Int değiştirildi kAudioFormatAppleLossless tipi Int32 için (Swift 1.2/Xcode 6.4) (Swift 2/Xcode 7) ve Swift 7.0.1 içinde UInt32. sabit boyutlu tamsayı türleri Int32 ve UInt32 gibi değildir otomatik olarak NSDictionary içine sokmak için NSNumber nesneleri köprülenir.

let recordSettings = [ 
    AVFormatIDKey: Int(kAudioFormatAppleLossless), // <-- HERE 
    AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue, 
    AVEncoderBitRateKey : 320000, 
    AVNumberOfChannelsKey: 2, 
    AVSampleRateKey : 44100.0 
] 
+1

Mükemmel:

Açık dönüştürme sorunu çözmek için yardımcı olur. Teşekkür ederim! –

+1

U sarılıyorum: D .... Xcode7.0.1'den çok – Husam

+1

'kAudioFormatAppleLossless'' UInt32' olduğuna çok teşekkürler. – rintaro