AddressBookManager 0.1.7

AddressBookManager 0.1.7

测试已测试
Lang语言 SwiftSwift
许可 MIT
Released最后发布2016年5月
SPM支持 SPM

Aadesh Patel 维护。



  • aadesh

AddressBookManager

用法

要运行示例项目,首先克隆仓库,然后从 Example 目录中运行 pod install

创建 AddressBookManager 实例
import AddressBookManager
...

var abManager: AddressBookManager? = AddressBookManager()
授权状态
switch (AddressBookManager.getAuthorizationStatus()) {
    case .Authorized:
        // Authorized To Use AddressBook
    case .Denied:
        // Denied Access To AddressBook
    case .Restricted:
        // Restricted Access To AddressBook
    case .Unknown:
        // Access To AddressBook Unknown, Most Likely AddressBook Authorization Has Not Been Requested Yet
}
检索联系人
// Option 1
abManager?.requestAuthorizationWithCompletion({ (granted: Bool, error: CFError?) -> Void in
            if (error) {
              // Handle Error 
            } else if (granted) {
              var people = abManager?.allContacts
              // Do Something With Contacts
            }
        })

// Option 2 - If you want to use a specific queue for retrieval
abManager?.retrieveAllContactsInQueue(dispatch_get_main_queue(),
            completion: { (contacts: [AddressBookPerson]?, error: CFError?) -> Void in
                if (error) {
                  // Handle Error
                } else {
                  // Do Something With Contacts
                }
        })
排序联系人
// Sort Contacts In Ascending Order By First Name
abManager?.retrieveAllContactsInQueue(dispatch_get_main_queue(),
            sort: { $0.firstName < $1.firstName },
            completion: { (contacts: [AddressBookPerson]?, error: CFError?) -> Void in
                if (error) {
                  // Handle Error
                } else {
                  // Do Something With Contacts
                }
        })
筛选联系人
// Retrieve Contacts That Have Atleast One Email
abManager?.retrieveAllContactsInQueue(dispatch_get_main_queue(),
            filter: { count($0.emails!) > 0 },
            completion: { (contacts: [AddressBookPerson]?, error: CFError?) -> Void in
                if (error) {
                  // Handle Error
                } else {
                  // Do Something With Contacts
                }
        })
排序和筛选联系人
// Retrieve Only Contacts That Have Atleast One Email And Sort Those Contacts In Ascending Order By First Name
abManager?.retrieveAllContactsInQueue(dispatch_get_main_queue(),
            sort: { $0.firstName < $1.firstName },
            filter: { count($0.emails!) > 0 },
            completion: { (contacts: [AddressBookPerson]?, error: CFError?) -> Void in
                if (error) {
                  // Handle Error
                } else {
                  // Do Something With Contacts
                }
        })
添加联系人
abm.requestAuthorizationWithCompletion { (granted: Bool, error: CFError?) -> Void in
    var person = AddressBookPerson()
    person.firstName = "Bob"
    person.lastName = "Smith"

    var personalEmail = MultiValue(key: "personal", value: "[email protected]")
    person.emails = [personalEmail]

    var homePhoneNumber = MultiValue(key: "home", value: "5555555555")
    var mobilePhoneNumber = MultiValue(key: "mobile", value: "1234567890")
    person.phoneNumbers = [homePhoneNumber, mobilePhoneNumber]

    person.profilePicture = UIImage(named: "bob.png")

    var homeAddress = Dictionary<AddressProperty, AnyObject>()
    homeAddress[AddressProperty.Street] = "123 Maple Street"
    homeAddress[AddressProperty.City] = "Miami"
    homeAddress[AddressProperty.State] = "FL"
    homeAddress[AddressProperty.ZipCode] = "00000"
    homeAddress[AddressProperty.Country] = "USA"

    var homeAddressValue = MultiValue(key: "home", value: homeAddress)
    person.addresses = [homeAddressValue]

    var dateFormatter: NSDateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MM/dd/yyyy"
    let birthday: NSDate? = dateFormatter.dateFromString("01/01/1970")
    person.birthday = birthday

    person.organization = "Some Huge Organization"
    person.jobTitle = "Developer"
    person.department = "Software"
    person.note = "Some Note Here"

    var personalURL = MultiValue(key: "personal", value: "https://somewebsite")
    person.urls = [personalURL]

    person.prefix = "Mr"
    person.suffix = "Jr"
    person.middleName = "Roger"

    var anniversaryDate = MultiValue(key: "anniversary", value: dateFormatter.dateFromString("02/02/2000"))
    person.dates = [anniversaryDate]

    abm?.addRecord(person)
    abm?.save()
}

Contact-Screenshot

其他方法
  • personCount - 返回通讯录中的联系人数量
  • groupCount - 返回通讯录中的组数量
  • removeRecord - 从通讯录中移除记录(AddressBookRecord)
  • hasUnsavedChanges - 如果通讯录中有未保存的更改(添加、删除等…)

安装

AddressBookManager 通过 CocoaPods 提供。要安装它,只需在 Podfile 中添加以下行

pod "AddressBookManager"

或者

您可以直接克隆此存储库,并将文件拖到您的项目中。

作者

Aadesh Patel,[email protected]

许可

AddressBookManager 在 MIT 许可下提供。有关更多信息,请参阅 LICENSE 文件。