如何使用 Contacts with Swift 对联系人进行排序

2023-11-23

我已经阅读了有关对联系人进行排序的苹果官方文档,尽管我不确定如何实现它。 所以,这是获取请求:

let fetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch)

和我喜欢的排序顺序:

let sortOrder = CNContactSortOrder.UserDefault

这就是我通常获取联系人的方式:

    do {
        try store.enumerateContactsWithFetchRequest(fetchRequest, usingBlock: { (let contact, let stop) -> Void in
                self.contacts.append(contact)
        })
    }
    catch let error as NSError {
        print(error.localizedDescription)
    }

现在我该怎么办sortOrder?我应该在哪里以及应该在整个获取过程中包含哪些内容?


更新为 Swift 4.0

let fetchRequest = CNContactFetchRequest(keysToFetch: [CNContactGivenNameKey as CNKeyDescriptor, CNContactFamilyNameKey as CNKeyDescriptor, CNContactMiddleNameKey as CNKeyDescriptor, CNContactEmailAddressesKey as CNKeyDescriptor,CNContactPhoneNumbersKey as CNKeyDescriptor])

        fetchRequest.sortOrder = CNContactSortOrder.userDefault

        let store = CNContactStore()

        do {
            try store.enumerateContacts(with: fetchRequest, usingBlock: { (contact, stop) -> Void in
              //  print(contact.phoneNumbers.first?.value ?? "not found")

            })
        }
        catch let error as NSError {
            print(error.localizedDescription)
        }

旧版像这样写

 fetchRequest.sortOrder = CNContactSortOrder.UserDefault

创建 fetchRequest 对象后 所以你的最终输出就像

let fetchRequest = CNContactFetchRequest(keysToFetch: keysToFetch)

fetchRequest.sortOrder = CNContactSortOrder.UserDefault

 do {
        try store.enumerateContactsWithFetchRequest(fetchRequest, usingBlock: { (let contact, let stop) -> Void in
                self.contacts.append(contact)
        })
    }
    catch let error as NSError {
        print(error.localizedDescription)
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Contacts with Swift 对联系人进行排序 的相关文章

随机推荐

  • Ember 表与 Ember 模型/Ember 数据集成

    我试图将 ember models 链接到 ember table 以从服务器提取分页记录 并在向下滚动时将它们添加到表中 我可以通过只请求我的 api url 和页码来让它工作 就像 ajax 示例中那样http addepar gith
  • 方法与函数,以及其他问题

    对于JS来说 两者有什么区别呢 我知道方法与对象相关联 但我很困惑函数的目的是什么 它们各自的语法有何不同 另外 这两种语法有什么区别 var myFirstFunc function param Do something and func
  • CsvHelper ConvertUsing 不更改输出

    我正在尝试使用ConvertUsing的方法CSV助手库 v 2 4 0 我已阅读有关的文档转换使用但无法让它发挥作用 我正在使用一个简单的类 public class Test public long Id get set public
  • Python Pandas

    我正在尝试对连续的相同信息进行分组和计数 Functions def postal saude global df lista solic List of solicitantes in Postal Saude list sol list
  • 如何从Firebase配置中获取measurementId?

    和玩谷歌分析对于 Firebase 上基于 Web 的项目 我们需要使用 Firebase 保留 URL 或按照文档所述复制 更新 Firebase 配置对象here 我正在使用以下命令来打印该配置信息 firebase setup web
  • VS Code 根据文件中的单词自动完成

    我刚刚开始使用 VS Code 目前我对此非常满意 我来自 Notepad 对于我正在做的事情 我没有找到任何处于同一 级别 的 IDE 直到现在 我真的很喜欢 VS Code 所做的事情以及所有现代集成技术如何帮助我 但我怀念 NPP 所
  • 如何增加 Symfony 2 表单上文件的上传限制?

    我在 Symfony 中有一个表单 用户可以将文件上传到其中 这些文件的大小最大可达 50Mb 但是 当我尝试上传大约 10Mb 的文件 在此之前 文件不大于 7 2Mb 时 表单会重新加载并出现以下错误 上传的文件太大 请尝试上传较小的文
  • ImageButton 不显示特定的可绘制对象

    这是我遇到过的一个相当有趣的问题 我的表格布局有 9 个图像按钮 每行 3 个 每个 ImageButton 都有一个与之关联的不同图像 我已将图像按钮的背景设置为透明 00000000 现在有趣的事情发生了 其中一张图像没有显示在模拟器
  • 如何处理 Win32 错误消息的占位符?

    我想在我的程序遇到 Win32 错误时显示有意义的错误消息 我打电话GetLastError 进而FormatMessage 但某些错误消息包含占位符 例如 ERROR BAD EXE FORMAT有文字 1 不是有效的 Win32 应用程
  • 如何在Python中使用cv2和多重处理并行从视频中获取帧

    我一直在 python 中使用 cv2 和多处理 我终于有了一个工作脚本 一旦各个帧已经在输入队列中 它就会对它们进行处理 但是 我想首先通过使用多个核心来加快将帧放入队列的速度 因此我尝试使用相同的多处理方法将每个图像读入队列 但我似乎无
  • python 3.5 上的 PyHook

    我正在尝试在 python 上编写一个基本的键盘记录程序 我需要安装 pywin32 和 pyhook 模块 我已经成功安装了 pywin32 但似乎无法 pyhook 工作 我已经读到它可以在更高版本的 python 上工作 但似乎无法弄
  • Spring 3 MVC:动态表单中的一对多(在创建/更新时添加/删除)

    我正在寻找解决方案管理 HTML 表单中的一对多关系 using jQuery 我正在开发Spring 春季MVC and 休眠 我在网上找到了很多曲目 但没有任何有效的完整示例 的背景 我有三个 JPA 实体 Consult java 1
  • Erlang:分布式应用程序奇怪的行为

    我使用分布式 erlang 应用程序进行支付 配置和思路取自 http www erlang org doc pdf otp system documentation pdf9 9 分布式应用程序 我们有3个节点 n1 a2 X201 n2
  • 如何在 Android 中将 webview 捕获为位图?

    我有一个网络视图 我需要向下滚动才能查看所有内容 现在 我想要捕获整个网络视图到位图 我找了很多次 人们建议我使用该功能capturePicture 然而 这个函数是已弃用 那么 我还可以使用哪些其他方法来实现我的目标 谢谢大家 Andro
  • Xamarin WebView 缩放以适应

    有没有办法在 Xamarin 中设置 WebView 以默认缩放其内容以适合屏幕 并且仍然允许捏放大 缩小 我们将用它来显示我们在线的文档 我解决了自定义渲染器的页面缩放和缩放问题 如下所示 For IOS public class Cus
  • RcppArmadillo的sample()在更新R后不明确

    我通常使用一个简短的 Rcpp 函数 该函数将一个矩阵作为输入 其中每行包含 K 个概率 总和为 1 然后 该函数为每行随机采样一个 1 到 K 之间的整数 对应于提供的概率 这是函数 Rcpp depends RcppArmadillo
  • 如何在安装了 python 2 和 3 的情况下使用 pip? (操作系统)

    我正在尝试让 python 3 在我的 OSX 笔记本电脑上运行 我需要安装 python 3 的请求 但它不起作用 我想我已经成功地为 python 2 7 和 python3 安装了 pip 但是 每当我使用 pip 时 它都会指向 p
  • 替换文件内容中的字符串[重复]

    这个问题在这里已经有答案了 如何打开文件 Stud txt 然后将所有出现的 A 替换为 Orange with open Stud txt rt as fin with open out txt wt as fout for line i
  • 异步 Javascript 变量覆盖

    该代码存在一个问题 即调用异步函数时变量会被覆盖 如何解决 Code for x in files asynchronousFunction var1 var2 function console log x someVaraible 现在的
  • 如何使用 Contacts with Swift 对联系人进行排序

    我已经阅读了有关对联系人进行排序的苹果官方文档 尽管我不确定如何实现它 所以 这是获取请求 let fetchRequest CNContactFetchRequest keysToFetch keysToFetch 和我喜欢的排序顺序 l