Swift AddressBook - 复制源代码中存在排序问题的所有人

Swift AddressBook - copy all people in source with sort ordering issue

这是我遇到的问题。非常感谢任何帮助。

代码如下:

var addressBook: ABAddressBookRef = {
    var error: Unmanaged<CFError>?
    return ABAddressBookCreateWithOptions(nil,
    &error).takeRetainedValue() as ABAddressBookRef
}()    

var source = ABAddressBookCopyDefaultSource(addressBook)!

var allPeople = ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook, source: source, sortOrdering: kABPersonSortByFirstName)

错误消息:无法将表达式的类型“(ABAddressBookRef,来源:@lvalue Unmanaged,sortOrdering:Int)”转换为类型“$T4”

两个错误:ABAddressBookCopyDefaultSource() returns Unmanaged<ABRecord>!,所以你必须调用 takeRetainedValue() 关于返回值。

ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering() 的最后一个参数必须 转换为预期类型 ABPersonSortOrdering:

var source: ABRecord = ABAddressBookCopyDefaultSource(addressBook).takeRetainedValue()

var allPeople = ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering(addressBook,
    source, ABPersonSortOrdering(kABPersonSortByFirstName))