我在为一些很简单的事情而挣扎,我不知道发生了什么。顺便说一下,它是斯威夫特1.2,但我不认为这是一个特殊的情况!
我有一个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!行引发。

我有点迷路了,我做错什么了?
发布于 2017-04-04 14:57:05
您只需初始化您的var
var bitrate: UInt32 = 0 https://stackoverflow.com/questions/43210498
复制相似问题