在向wit.ai发送文本时发出结果

时间:2016-04-04 09:45:50

标签: swift swift2 nsarray nsdictionary wit.ai

我正在使用以下内容通过按钮功能将文本发送到wit.ai:

@IBAction func searchButton(sender: AnyObject) {

    searchQueryText = searchTextInput.text!
    if searchQueryText != "" {
        wit.interpretString(searchQueryText, customData: nil)
    }

func interpretString(string: String, customData: AnyObject) {
}

这项工作正常,因为文本被发送到wit.ai.但是我没有得到wit.ai回应应用程序的回复。如果使用麦克风,我可以得到很好的响应,而不是文本。我试过调用witDidGraspIntent函数强制它按下按钮运行,但我无法弄清楚我应该在'outcome'参数中使用什么。有人可以帮忙吗?我不确定按下按钮后是否有不同的方式来运行该功能?这是功能:

func witDidGraspIntent(outcomes: [AnyObject]!, messageId: String!, customData: AnyObject!, error e: NSError!) {
    if ((e) != nil) {
        print("\(e.localizedDescription)")
        return
    }

    let outcomes : NSArray = outcomes!
    let firstOutcome : NSDictionary = outcomes.objectAtIndex(0) as! NSDictionary
    if let intent = firstOutcome.objectForKey("intent") as? String {
        searchResultsIntent = intent
    }

    if searchResultsIntent == "searchIntent" {

        intentLabel.text = "\(searchResultsIntent)"
        print(outcomes[0])

    } else {

        intentLabel.text = "I'm sorry, I did not understand that."
    }
}

这里是wit.ai的文档:https://wit.ai/docs/ios/4.0.0/api

非常感谢任何帮助!

欢呼声。

1 个答案:

答案 0 :(得分:0)

Wit sdk为用户提供了一个sharedInstance(singleton),因此您可以像以下一样启动它:

Wit.sharedInstance().accessToken = "TOKEN"
Wit.sharedInstance().delegate = self

并使用sharedInstance调用interpretString函数,即

 Wit.sharedInstance().interpretString(text, customData: nil)