SwiftyContacts 4.0.2

SwiftyContacts 4.0.2

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布上次发布2022 年 1 月
SPM支持 SPM

Satish Babariya 维护。



  • Satish Babariya

SwiftyContacts

Language: Swift 5 Version License Platform Swift Package Manager Carthage compatible CocoaPods compatible RxSwift: Supported Read the Docs

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.swiftdependencies 值一样简单。

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文件。