如何在 Swift 中使用 VisualRecognition 分类器

Posted

技术标签:

【中文标题】如何在 Swift 中使用 VisualRecognition 分类器【英文标题】:How can I use VisualRecognition classifiers in Swift 【发布时间】:2016-09-07 19:27:47 【问题描述】:

相关:https://github.com/watson-developer-cloud/ios-sdk#visual-recognition,我插入了classifierIDs参数:

import VisualRecognitionV3
let apiKey = "your-apikey-here"
let version = "YYYY-MM-DD" // use today's date for the most recent version
let visualRecognition = VisualRecognition(apiKey: apiKey, version: version)
let url = "your-image-url"
let failure =  (error: NSError) in print(error) 
visualRecognition.classify(url, classifierIDs: "x", failure: failure)  classifiedImages in
    print(classifiedImages)

这会导致错误:

Ambiguous reference to member 'classify(_:owner:classifierIDs:showLowConfidence:outputLanguage:failure:success)'

【问题讨论】:

【参考方案1】:

根据我的经验,ambiguous reference 错误通常是由类型不匹配引起的。在这种情况下,SDK 中有两个classify 函数,一个是第一个参数是String,另一个是第一个参数是NSURL。出现ambiguous reference 错误是因为编译器无法使用类型推断来消除两个classify 函数的歧义并确定您打算执行哪个函数。

我相信这里的特定问题与classifierIDs 参数有关。根据documentation,classifierIDs的类型为[String]?,与"x"的类型不匹配。请改用["x"]

也就是说,试试:

visualRecognition.classify(url, classifierIDs: ["x"], failure: failure)  classifiedImages in
    print(classifiedImages)

【讨论】:

以上是关于如何在 Swift 中使用 VisualRecognition 分类器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 kotlin native 中使用 swift 库?

如何在 Swift 中使用 Apple 地图 - 你必须使用 C 还是 Swift 可以?

如何在 Swift 中使用 MKPolylineView

如何在 Swift 中使用`syslog`

如何在 swift 项目中使用 TPKeyboardAvoiding?

如何在 Playground 中使用 Swift 包管理器