2015-09-10 4 views
8

मैं स्विफ्ट 2.0 में अपग्रेड किया और मैं काफी यह नहीं समझ सकता जब मैं एक ध्वनि रिकॉर्ड करने की कोशिश में एक ऑडियो रिकॉर्डर के लिए अधिक संदर्भ के बिना अस्पष्ट है:कैसे हल करने के लिए अभिव्यक्ति का प्रकार तेजी से 2

प्रकार अभिव्यक्ति की अधिक संदर्भ के बिना अस्पष्ट है

var recordSettings

पर

मैं यह त्रुटि और अधिक महत्वपूर्ण fixt को क्या करना चाहिए, क्यों?

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 
    } 

उत्तर

15

kAudioFormatAppleLossless के प्रकार Int से बदल (स्विफ्ट 1.2/Xcode 6.4) Int32 को (स्विफ्ट 2/Xcode 7) और स्विफ्ट 7.0.1 में UInt32तय आकार पूर्णांक प्रकार Int32 और UInt32 तरह नहीं स्वचालित रूप से एक NSDictionary में प्रविष्टि के लिए NSNumber वस्तुओं को पाट।

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

बिल्कुल सही:

एक स्पष्ट रूपांतरण समस्या को हल करने में मदद करता है। धन्यवाद! –

+1

मैं आपको एक गले लगा दूंगा: डी .... धन्यवाद बहुत सारे – Husam

+1

'kAudioFormatAppleLossless' Xcode7.0.1 के रूप में 'UInt32' है। – rintaro

संबंधित मुद्दे