我正在尝试在我的应用中为Siri实施INCreateNoteIntent。 Siri解决了所有需要的内容,她通过确认,并通过处理意图方法,这一切都有效,但Siri的最终回应是:
抱歉,该应用存在问题,
控制台日志中打印的是:
[Intents] -[INCache cacheableObjectForIdentifier:] Unable to find cacheable object with identifier 5BCBE5F9-5DD6-4E63-AF5C-F3863BF56ECD in cache.
有什么想法吗?
答案 0 :(得分:3)
使用INCreateTaskListIntent
时遇到了同样的问题。也许你和INCreateNoteIntent
有类似的问题?
事实证明,在handle
方法中创建的最终响应中,您必须为响应分配一个新的INTaskList
对象,否则它不是有效的成功响应(即,成功的回复必须设置createdTaskList
字段。也许你的笔记问题很相似?
以下是修复前后代码的示例:
之前(我没有创建和设置任务列表):
func handle(intent: INCreateTaskListIntent, completion: @escaping (INCreateTaskListIntentResponse) -> Void) {
guard let title = intent.title else {
completion(INCreateTaskListIntentResponse(code: .failure, userActivity: nil))
return
}
print("Creating task list called \(title)")
let response = INCreateTaskListIntentResponse(code: .success, userActivity: nil)
completion(response)
}
之后(我设置任务列表):
func handle(intent: INCreateTaskListIntent, completion: @escaping (INCreateTaskListIntentResponse) -> Void) {
guard let title = intent.title else {
completion(INCreateTaskListIntentResponse(code: .failure, userActivity: nil))
return
}
print("Creating task list called \(title)")
let taskList = INTaskList(
title: title,
tasks: [],
groupName: nil,
createdDateComponents: nil,
modifiedDateComponents: nil,
identifier: "superduperlist"
)
let response = INCreateTaskListIntentResponse(code: .success, userActivity: nil)
response.createdTaskList = taskList
completion(response)
}
答案 1 :(得分:0)
我遇到了同样的问题,显然你需要在.entitlements文件中添加一个App Groups键类型数组,其中包含一个字符串类型的项目,其自定义ID为你的