我正在努力處理一些非常簡單的事情,我不知道發生了什麼。順便說一下,這是Swift 1.2,但我不認爲這是一個特例!如何解開UInt32?在Swift中?
我有一個UInt32?
變量,我需要得到的值,但使用!
會拋出一個錯誤:fatal error: unexpectedly found nil while unwrapping an Optional value
。不,我知道這不是零。
static func checkBitrate(filePath: String) -> Bool {
let audioURL = NSURL.fileURLWithPath(filePath)
var audioFile : AudioFileID = nil
var theErr: OSStatus? = nil
let hint: AudioFileTypeID = 0
theErr = AudioFileOpenURL(audioURL, Int8(kAudioFileReadPermission), hint, &audioFile)
if (theErr != OSStatus(noErr)) {
return false
}
var outDataSize: UInt32 = 0
var isWritable: UInt32 = 0
theErr = AudioFileGetPropertyInfo(audioFile, UInt32(kAudioFilePropertyBitRate), &outDataSize, &isWritable)
if (theErr != OSStatus(noErr)) {
return false
}
var bitrate: UInt32? = nil
theErr = AudioFileGetProperty(audioFile, UInt32(kAudioFilePropertyBitRate), &outDataSize, &bitrate)
if (theErr != OSStatus(noErr)) {
return false
}
println("Bitrate value: \(bitrate)")
let br = bitrate!
//return br == 192000
return false
}
錯誤發生在行let br = bitrate!
。
我有點失落,我該怎麼辦錯了嗎?
請再次閱讀我的問題。該值爲233000是正確的值。 – Krystian
嘗試將'bitrate'聲明爲簡單變量而不是可選項。 –
你需要初始化你的var。只需加= 0. var bitrate:UInt32? = 0' –