проблемы с поиском телефонных номеров в адресной книге - PullRequest
0 голосов
/ 14 ноября 2011

вчера я использовал xcode 3.2 на 10.6, я обновил до 10.7 с xcode 4.2 проект адресной книги, который хорошо работал в xcode 3.2, не работает в новой версии xcode, следующая ошибка: (/ Users / Blake / Development / g / g / ViewController.m: 37: 37: {37: 37-37: 56} {37: 48-37: 56}: ошибка: приведение типа указателя C 'CFStringRef' (также известного как const struct) __CFString * ') для типа указателя Objective C' NSString * 'требует мостового приведения [4]

    phones = [[NSMutableArray alloc] init];
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef peopleRecords = ABAddressBookCopyArrayOfAllPeople(addressBook);

for (int i = 0; i < CFArrayGetCount(peopleRecords); ++i)
{
    ABRecordRef recordRef = CFArrayGetValueAtIndex(peopleRecords, i);
    ABMultiValueRef phoneRefs = ABRecordCopyValue(recordRef, kABPersonPhoneProperty);

    for (int a = 0; a < ABMultiValueGetCount(phoneRefs); ++a)
    {
        CFStringRef phoneStr = ABMultiValueCopyValueAtIndex(phoneRefs, a);
        NSString* phoneString = (NSString*)phoneStr;
        [phones addObjectphoneString];
        CFRelease(phoneStr);
    }

    CFRelease(phoneRefs);
}

CFRelease(addressBook);
CFRelease(peopleRecords);

for (NSString *phone in phones)
{
    NSLog(@"%@", phone) ;
}

1 Ответ

0 голосов
/ 14 ноября 2011

Я делаю это так:

//get all phone numbers                   
ABMultiValueRef phoneNumberProperty = ABRecordCopyValue(currentPerson, kABPersonPhoneProperty);
NSArray *phoneNumbersArray = (NSArray*)ABMultiValueCopyArrayOfAllValues(phoneNumberProperty);

Затем я повторяю массив phoneNumbersArray для NSString.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...