在使用SiriKit的Notes&Lists域时,我已经能够使用INNote创建INTextNoteContent作为响应,因此,意图和响应在原则上是有效的。

为了响应图像,请使用以下代码:

let image: UIImage? = ...grabbing valid image from app's user data

if let image = image,
    let data = UIImagePNGRepresentation(image) {
    let imageNote = INImageNoteContent(image: INImage(imageData: data))
    ...append to [INNote], etc...
}


这些属性似乎具有数据,但是意图没有得到处理(Siri说,“您可能在MyApp中找到了该信息”),而它只显示了文本内容而显示了正确的数据。关于哪一部分我有什么想法?有没有人成功使用INImageNoteContent

谢谢!

编辑:经过进一步的实验,确认INImage(named: "some image name")INNote一起正常工作,这意味着INImageNoteContent的实现是bueno,并且重点放在INImage(imageData: Data)上。然后尝试

if let image = UIImage(named: "some image name"),
    let data = UIImagePNGRepresentation(image) {
    let imageNote = INImageNoteContent(image: INImage(imageData: data))
    ...append to [INNote], etc...
}




if let image = UIImage(named: "some image name"),
    let data = image.cgImage?.dataProvider?.data as Data? {
    let imageNote = INImageNoteContent(image: INImage(imageData: data))
    ...append to [INNote], etc...
}


并且每个都产生与初始代码相同的结果。除了INImage(imageData: Data)并不像广告所示的那样,有没有得出其他结论?

编辑:从iOS 12开始,无论今天提供什么版本,INImage都能按预期工作。我不需要任何代码更改,因此我猜想错误报告有效。

最佳答案

这样就可以将其标记为已回答而不是打开...

let image: UIImage? = ...grabbing valid image from app's user data

if let image = image,
    let data = UIImagePNGRepresentation(image) {
    let imageNote = INImageNoteContent(image: INImage(imageData: data))
    ...append to [INNote], etc...
}

关于swift - INImage或INImageNoteContent是否出错?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51717467/

10-12 14:35