API - Microsoft Cognitive Services Face,如何返回属性

时间:2016-07-12 18:15:45

标签: ios swift microsoft-cognitive

在swift中,我正在使用Microsoft Cognitive Services Face API函数detectWithData并尝试使用returnFaceAttributes来调用[AnyObject]!。我需要有关输入数组的帮助。

根据this link,我认为["age", "gender"]可行,但我收到错误消息:

  

无法识别的选择器发送到实例0x7f9b96043df0

使用[MPOFaceAttributeTypeAge, MPOFaceAttributeTypeGender]会出错:

  

'MPOFaceAttributeTypeAge'类型的值不符合预期的元素类型'AnyObject'

由于某种原因,在数组中键入“true”会给我age属性,但所有其他属性都显示为nil。

我找不到任何使用swift在线的例子。任何建议或指出我正确的方向将不胜感激。

@IBAction func battleBtn(sender: UIButton){
    if !hasChoosenTop || !hasChoosenBottom{
        showErrorAlert()
    } else{
        if let firstImg = topImg.image, let firstImgData = UIImageJPEGRepresentation(firstImg, 0.8), let secondImg = bottomImg.image, let secondImgData = UIImageJPEGRepresentation(secondImg, 0.8){
            FaceService.instance.client.detectWithData(firstImgData, returnFaceId: true, returnFaceLandmarks: false, returnFaceAttributes: [MPOFaceAttributeTypeAge, MPOFaceAttributeTypeGender], completionBlock: { (face: [MPOFace]!, err: NSError!) in
                if err == nil {
                    var topFace: String?
                    topFace = face[0].faceId
                    var top = face[0].attributes.age
                    print("my faceId: \(topFace)")
                    print("my faceId: \(top)")

                }
            })
        }
    }
}

screenshot of error

1 个答案:

答案 0 :(得分:1)

[AnyObject]!包含一个Int数组。例如:[1,4]会返回年龄并微笑。