我按原樣轉換了Objective-C語音識別API Swift。將Objective-C框架連接到Swift iOS項目時的致命錯誤(SpeechSDK框架)
class ViewController: UIViewController, SpeechRecognitionProtocol {
var micClient: MicrophoneRecognitionClient
var isMicrophoneReco: Bool
/* Action for pressing the "Start" button */
@IBAction func startButtonTapped(sender: AnyObject) {
if isMicrophoneReco {
var status: OSStatus = micClient.startMicAndRecognition()
}
}
我得到了以下錯誤:
類型 '視圖控制器' 不符合 'SpeechRecognitionProtocol' 班 '的ViewController' 沒有初始化
我固定爲以下幾點:
class ViewController: UIViewController {
var micClient: MicrophoneRecognitionClient?
var isMicrophoneReco: Bool = true
/* Action for pressing the "Start" button */
@IBAction func startButtonTapped(sender: AnyObject) {
if isMicrophoneReco {
var status: OSStatus = micClient!.startMicAndRecognition()
}
}
我得到
致命錯誤:意外地發現零而展開的可選值(LLDB)在
micClient!.startMicAndRecognition()
startButtonTapped函數內部線。顯然,在轉換基於Objective-C的API時,通常將值聲明爲可選值,但總是希望返回值。但Swift需要初始化變量。
我正在爲此工作數日。我怎樣才能消除這個錯誤?
顯示SpeechRecognitionProtocol的Objective-C聲明請 – matt
抱歉在這裏錯過了您的問題。 [該協議在ViewController.h中聲明](http://stackoverflow.com/questions/35471902/convert-microsoft-project-oxford-speech-recognition-from-objective-c-to-swift) – antbithia