私は何か非常に単純なことに苦労しています。何が起こっているのか分かりません。ちなみに、それはSwift 1.2ですが、私はそれが特別なケースではないと思います!UInt32のアンラップ方法は?スウィフトで?
私は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' –