После последнего обновления Xcode 5.1 перестал работать пример кода Apple для сортировки адресной книги. URL-адрес: https://developer.apple.com/library/ios/documentation/ContactData/Conceptual/AddressBookProgrammingGuideforiPhone/Chapters/DirectInteraction.html
Пример кода
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFMutableArrayRef peopleMutable = CFArrayCreateMutableCopy(
kCFAllocatorDefault,
CFArrayGetCount(people),
people
);
CFArraySortValues(
peopleMutable,
CFRangeMake(0, CFArrayGetCount(peopleMutable)),
(CFComparatorFunction) ABPersonComparePeopleByName,
(void*) ABPersonGetSortOrdering()
);
CFRelease(addressBook);
CFRelease(people);
CFRelease(peopleMutable);
Но теперь этот код вызывает предупреждение
Cast to 'void *' from smaller integer type 'ABPersonSortOrdering' (aka 'unsigned int')
В этой строке
(void*) ABPersonGetSortOrdering())
Как мне изменить этот код?
На самом деле я просматривал форумы Apple, гуглил, переполнял Stackoverflow, но пока без радости.
Надеюсь, вы можете мне помочь.
ОБНОВЛЕНИЕ
Похоже, что использование 64-битной версии как-то связано с этим предупреждением. Это совпадает с включением моего нового iPhone 5s.
ABAddressBookCreate
вы должны использоватьABAddressBookCreateWithOptions()
. Вы также должны заранее проверить, есть ли у вас разрешение на доступ к адресной книге с помощьюABAddressBookRequestAccessWithCompletion
. См. здесь для получения более подробной информации... ="как мне правильно использовать метод aaddressbookcreatewithoptions в ios 6"> stackoverflow.com/questions/12083643/ - person Sammio2   schedule 18.03.2014ABAddressBookCreateWithOptions
для создания адресной книги. - person dequin   schedule 19.03.2014