菜鸟教程小白 发表于 2022-12-13 13:18:06

ios - 删除 iOS 联系人组


                                            <p><p>有人尝试使用 iOS 9 联系人框架删除现有的联系人组吗?</p>

<p>我初始化联系人存储并请求联系人组列表,这为我提供了一个 <code>CNGroup</code> 实例数组:</p>

<pre><code>var groups: ?

do {
    self.groups = try contactStore.groupsMatchingPredicate(nil)
}
catch { ... }
</code></pre>

<p>然后我在表格 View 中显示组。当用户滑动表格 View 单元格时,我想从联系人存储中删除相应的组。</p>

<p>但是,<code>CNContactStore</code> 的<code>deleteGroup</code> 方法需要一个<code>CNMutableGroup</code> 实例,而不是<code>CNGroup</code>。 Xcode 给我一个错误:</p>

<pre><code>Cannot convert value of type &#39;CNGroup&#39; to expected type &#39;CNMutableGroup&#39;
</code></pre>

<p>显然,如果我尝试将 <code>CNGroup</code> 实例转换为 <code>CNMutableGroup</code>:</p>

<pre><code>let saveRequest = CNSaveRequest()
saveRequest.deleteGroup(group as! CNMutableGroup)
do {
    try contactStore.executeSaveRequest(saveRequest)
}
catch { ... }
</code></pre>

<p>我在运行时崩溃了:</p>

<pre><code>Could not cast value of type &#39;CNGroup&#39; (0x370890f8) to &#39;CNMutableGroup&#39; (0x370899f4)
</code></pre>

<p>我意识到这是因为 <code>CNGroup</code> 是 <code>CNMutableGroup</code> 的父类(super class),但我又一次看不到如何获得 <code>CNMutableGroup</code>用 <code>CNGroup</code> 实例初始化。</p>

<p>我已请求访问联系人框架。 Xcode 7.3,iOS 9.2.1。 </p>

<p>那么,关于如何删除联系人组有什么想法吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>转换 CNGroup 的可变副本可以修复此问题。 </p>

<pre><code>let saveRequest = CNSaveRequest()
saveRequest.deleteGroup(group.mutableCopy() as! CNMutableGroup)
do {
    try contactStore.executeSaveRequest(saveRequest)
}
catch { ... }
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 删除 iOS 联系人组,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36290051/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36290051/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 删除 iOS 联系人组