2015-04-04 2 views
0

вот проблема, которую я получаю. Буду признателен за любую оказанную помощь.Swift AddressBook - копия всех людей в исходном коде с вопросом упорядочения сортировки

enter image description here

Вот код: сообщение

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 Неуправляемый, sortOrdering: Int)' для типа '$ T4'

ответ

1

Две ошибки: ABAddressBookCopyDefaultSource() возвращает Unmanaged<ABRecord>!, поэтому вам нужно позвонить takeRetainedValue() по возвращенной стоимости.

И последний аргумент ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering() должен быть преобразованы в ожидаемый тип ABPersonSortOrdering:

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

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

Спасибо !! Еще одна проблема ... как мне преобразовать неуправляемый в CFArray или даже лучше, NSArray? –

+0

потому что allPeople в настоящее время типа неуправляемого , который я не могу перебирать с помощью цикла –

+0

@ user3471847: Возможно, 'ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering (...). TakeRetainedValue() as [ABRecord]'? –