2015-09-19 12 views

Trả lời

56

Bạn có thể cung cấp cho trình biên dịch biết thêm thông tin:

let recordSettings : [String : Any] = 
[ 
    AVFormatIDKey: kAudioFormatMPEG4AAC, 
    AVEncoderAudioQualityKey : AVAudioQuality.Max.rawValue, 
    AVEncoderBitRateKey : 320000, 
    AVNumberOfChannelsKey: 2, 
    AVSampleRateKey : 44100.0 
] 
+1

Cảm ơn bạn vì điều này. Tôi không biết là có sẵn. Tôi đã thử AnyObject và điều đó không hiệu quả. Đáng buồn thay, người nhận recordSettings yêu cầu [String: AnyObject] – lernerbot

+1

@lernerbot, xem câu trả lời của tôi bên dưới. – Stephan

+1

Bạn đúng. Câu hỏi ban đầu của tôi là mơ hồ. – lernerbot

35

Để tuân thủ định dạng [String : AnyObject] bắt buộc theo yêu cầu của thông số recordSettings; Ngoài @ câu trả lời Unheilig, bạn sẽ cần phải chuyển đổi ints của bạn và 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 
] 
+3

đây phải là câu trả lời được chấp nhận – DCDC

+2

Tôi đồng ý ngoại trừ tôi đã không hỏi câu hỏi một cách chính xác. @Stephan trả lời câu hỏi tôi muốn hỏi. – lernerbot

3

Tôi cũng nhận được thông báo lỗi này cố gắng để khởi một mảng của optionals với con số không:

var eggs : [Egg] = Array<Egg>(count: 10, repeatedValue: nil) 

Expression Type 'Array<Egg>' is ambiguous without more context.

Thay đổi [Egg] thành [Egg?] khắc phục lỗi.

Các vấn đề liên quan