菜鸟教程小白 发表于 2022-12-12 14:38:11

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) -&gt; Void) {
    guard let title = intent.title else {
      completion(INCreateTaskListIntentResponse(code: .failure, userActivity: nil))
      return
    }

    print(&#34;Creating task list called \(title)&#34;)
    let response = INCreateTaskListIntentResponse(code: .success, userActivity: nil)
    completion(response)
}
</code></pre>

<p>之后(我设置了任务列表):</p>

<pre><code>func handle(intent: INCreateTaskListIntent, completion: @escaping (INCreateTaskListIntentResponse) -&gt; Void) {
    guard let title = intent.title else {
      completion(INCreateTaskListIntentResponse(code: .failure, userActivity: nil))
      return
    }

    print(&#34;Creating task list called \(title)&#34;)
    let taskList = INTaskList(
      title: title,
      tasks: [],
      groupName: nil,
      createdDateComponents: nil,
      modifiedDateComponents: nil,
      identifier: &#34;superduperlist&#34;
    )
    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]
查看完整版本: ios - 无法在缓存中找到具有标识符 - id - 的可缓存对象