SwiftyContacts
Contacts 框架的 Swift 库。
要求
- iOS 11.0+ / Mac OS X 10.13+ / watchOS 4.0+
- Xcode 13.0+
安装
CocoaPods
CocoaPods 是 Cocoa 项目的依赖管理器。您可以使用以下命令安装它
$ gem install cocoapods
要使用 CocoaPods 将 SwiftyContacts 集成到您的 Xcode 项目中,在您的 Podfile
中指定它
pod 'SwiftyContacts'
然后,运行以下命令
$ pod install
Swift 包管理器
Swift 包管理器 是一个用于自动化 Swift 代码分发的工具,它集成到 swift
编译器中。它处于早期开发阶段,但 SwiftyContacts 支持其在支持平台上的使用。
一旦您设置了您的 Swift 包,将 SwiftyContacts 添加为依赖项就像将它添加到您的 Package.swift
的 dependencies
值一样简单。
dependencies: [
.package(url: "https://github.com/SwiftyContacts/SwiftyContacts.git", .upToNextMajor(from: "4.0.0"))
]
开始使用
async-await
请求访问用户的联系信息
let access = try await requestAccess()
请求当前授权状态
let status = authorizationStatus()
print(status == CNAuthorizationStatus.authorized)
从设备中获取所有联系人
let contacts = try await fetchContacts()
获取匹配名称的联系人
let contacts = try await fetchContacts(matchingName: "Satish Babariya")
获取匹配电子邮件地址的联系人
let contacts = try await fetchContacts(matchingEmailAddress: "[email protected]")
获取匹配电话号码的联系人
let contacts = try await fetchContacts(matching: CNPhoneNumber(stringValue: "+919426678969"))
获取匹配联系人标识符的联系人
let contacts = try await fetchContacts(withIdentifiers: ["id1", "id2" ... ])
获取与组标识符匹配的联系人
let contacts = try await fetchContacts(withGroupIdentifier: "")
查找指定容器中的联系人。
let contacts = try await fetchContacts(withContainerIdentifier: "")
根据给定的标识符获取联系人。
let contact = try await fetchContact(withIdentifier: "")
将联系人添加到联系人存储。
let contact = CNMutableContact()
contact.givenName = "Satish"
try addContact(contact)
更新联系人到联系人存储。
guard let contact = contact.mutableCopy() as? CNMutableContact else {
return
}
contact.givenName = "Satish"
try updateContact(contact)
删除联系人到联系人存储。
guard let contact = contact.mutableCopy() as? CNMutableContact else {
return
}
try deleteContact(contact)
将组添加到联系人存储。
try addGroup("My Group")
获取联系存储中的所有群组。
let groups = try await fetchGroups()
更新联系存储中的现有群组。
guard let group = group.mutableCopy() as? CNMutableGroup else {
return
}
try updateGroup(group)
从联系存储中删除群组。
try deleteGroup(group)
查找特定群组中的成员联系人。
let contacts = try fetchContacts(in: "My Group")
为群组添加新成员。
try addContact(contact, to: group)
从群的成员中删除联系人。
try deleteContact(contact, from: group)
闭包
请求访问用户联系信息
requestAccess { result in
switch result {
case let .success(bool):
print(bool)
case let .failure(error):
print(error.localizedDescription)
}
}
从设备中获取所有联系人
fetchContacts { result in
switch result {
case let .success(contacts):
print(contacts)
case let .failure(error):
print(error.localizedDescription)
}
}
根据名称查找联系人
fetchContacts(matchingName: "Satish") { result in
switch result {
case let .success(contacts):
print(contacts)
case let .failure(error):
print(error.localizedDescription)
}
}
根据电子邮件地址查找联系人
fetchContacts(matchingEmailAddress: "[email protected]") { result in
switch result {
case let .success(contacts):
print(contacts)
case let .failure(error):
print(error.localizedDescription)
}
}
根据电话号码查找联系人
fetchContacts(matching: CNPhoneNumber(stringValue: "+919426678969")) { result in
switch result {
case let .success(contacts):
print(contacts)
case let .failure(error):
print(error.localizedDescription)
}
}
根据联系人标识符查找联系人
fetchContacts(withIdentifiers: []) { result in
switch result {
case let .success(contacts):
print(contacts)
case let .failure(error):
print(error.localizedDescription)
}
}
获取匹配组标识符的联系人
fetchContacts(withGroupIdentifier: "") { result in
switch result {
case let .success(contacts):
print(contacts)
case let .failure(error):
print(error.localizedDescription)
}
}
在指定的容器中查找联系人。
fetchContacts(withContainerIdentifier: "") { result in
switch result {
case let .success(contacts):
print(contacts)
case let .failure(error):
print(error.localizedDescription)
}
}
获取给定标识符的联系人。
fetchContact(withIdentifier: "") { result in
switch result {
case let .success(contact):
print(contact)
case let .failure(error):
print(error.localizedDescription)
}
}
将指定的联系人添加到联系人存储中。
let contact = CNMutableContact()
contact.givenName = "Satish"
addContact(contact) { result in
switch result {
case let .success(contact):
print(contact)
case let .failure(error):
print(error.localizedDescription)
}
}
更新联系人存储中现有联系人。
guard let contact = contact.mutableCopy() as? CNMutableContact else {
return
}
contact.givenName = "Satish"
updateContact(contact) { result in
switch result {
case let .success(contact):
print(contact)
case let .failure(error):
print(error.localizedDescription)
}
}
从联系人存储中删除联系人。
guard let contact = contact.mutableCopy() as? CNMutableContact else {
return
}
deleteContact(contact) { result in
switch result {
case let .success(contact):
print(contact)
case let .failure(error):
print(error.localizedDescription)
}
}
获取匹配指定谓词的所有组。
fetchGroups() { result in
switch result {
case let .success(groups):
print(groups)
case let .failure(error):
print(error.localizedDescription)
}
}
将一个分组添加到联系人存储。
addGroup("My Group") { result in
switch result {
case let .success(group):
print(group)
case let .failure(error):
print(error.localizedDescription)
}
}
更新联系人存储中现有的分组。
guard let group = group.mutableCopy() as? CNMutableGroup else {
return
}
updateGroup(group) { result in
switch result {
case let .success(group):
print(group)
case let .failure(error):
print(error.localizedDescription)
}
}
从联系人存储中删除一个分组。
guard let group = group.mutableCopy() as? CNMutableGroup else {
return
}
deleteGroup(group) { result in
switch result {
case let .success(group):
print(group)
case let .failure(error):
print(error.localizedDescription)
}
}
查找指定分组中的成员联系人。
fetchContacts(in: "My Group") { result in
switch result {
case let .success(contacts):
print(contacts)
case let .failure(error):
print(error.localizedDescription)
}
}
向分组中添加新成员。
addContact(contact, to: group) { result in
switch result {
case let .success(contact):
print(contact)
case let .failure(error):
print(error.localizedDescription)
}
}
将联系人从分组的成员中移除。
removeContact(contact, from: group) { result in
switch result {
case let .success(contact):
print(contact)
case let .failure(error):
print(error.localizedDescription)
}
}
作者
萨蒂什·巴巴里亚,[email protected]
许可证
SwiftyContacts遵守MIT许可证。更多信息请参阅LICENSE文件。