菜鸟教程小白 发表于 2022-12-13 10:35:03

ios - 使用 EventKit 创建提醒时出错


                                            <p><p>我有一个使用 EventKit 的应用程序。我请求允许提醒,然后我有创建提醒的代码。在模拟器中运行应用程序时,我有时会在日志中收到此错误消息:</p>

<p><code>从守护进程获取自时间戳 450512391.766620 以来更改的对象 ID 时出错:错误域 = EKCADErrorDomain 代码 = 1013“操作无法完成。(EKCADErrorDomain 错误 1013。)”
获取新提醒的默认日历时出错:错误域 = EKCADErrorDomain 代码 = 1013“操作无法完成。(EKCADErrorDomain 错误 1013。)”
</code></p>

<p>第一个错误来自授权步骤,第二个来自这些行:</p>

<p><code>EKReminder *reminder = ;
提醒.calendar = eventStore.defaultCalendarForNewReminders;
</code></p>

<p>这发生在 <code>requestAccessToEntityType:completion:</code> 返回已授予的提醒权限之后,因此肯定有权限。</p>

<p>奇怪的是,一旦问题发生,如果我只是重新启动应用程序,一切都很好。如果我重置模拟器并重新运行应用程序,这种情况有时会再次发生。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>这似乎只发生在以下工作流程中:</p>

<ul>
<li>重置所有联系人和设置菜单选项。</li>
<li>模拟器恢复后立即退出。</li>
<li>运行您的应用,该应用会立即在刚刚重置、从未打开过的模拟器上询问日历信息。</li>
</ul>

<p>我怀疑原因是因为当你重置整个模拟器时,它需要几秒钟来初始化所有演示数据,例如第一次“启动”时的联系人和日历事件。</p>

<p>如果您在重置后等待 10 多秒,然后运行您的应用,您不会收到此警告。</p>

<p>另一种解决方法是在日历权限测试期间使用 iOS 模拟器设置应用程序中的“重置隐私设置”(常规 > 重置)。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 使用 EventKit 创建提醒时出错,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/29586675/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/29586675/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 使用 EventKit 创建提醒时出错