ios - 无法在缓存中找到具有标识符 - id - 的可缓存对象
<p><p>我正在尝试在我的应用中为 Siri 实现 INCreateNoteIntent。
Siri解析了所有需要的内容,她通过confirm和handle intent方法,一切正常,但Siri的最终响应是:</p>
<p><em>抱歉,应用出现问题</em>,</p>
<p>控制台日志中打印的是这样的:</p>
<p><code>
[意图] - 无法在缓存中找到标识符为 5BCBE5F9-5DD6-4E63-AF5C-F3863BF56ECD 的可缓存对象。</code></p>
<p>有什么想法吗?</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>我在使用 <code>INCreateTaskListIntent</code> 时遇到了同样的问题。也许您对 <code>INCreateNoteIntent</code> 也有类似的问题? </p>
<p>事实证明,在您在 <code>handle</code> 方法中创建的最终响应中,您必须为响应分配一个新的 <code>INTaskList</code> 对象,否则它不是有效的成功响应(即,成功的响应必须设置 <code>createdTaskList</code> 字段)。也许你的笔记问题是类似的?</p>
<p>这是修复前后的代码示例:</p>
<p>之前(我不是创建和设置任务列表):</p>
<pre><code>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)
}
</code></pre>
<p>之后(我设置了任务列表):</p>
<pre><code>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)
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 无法在缓存中找到具有标识符 - id - 的可缓存对象,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/49152758/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/49152758/
</a>
</p>
页:
[1]