У меня довольно неожиданный результат со следующим кодом:
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
CFIndex nPeople = ABAddressBookGetPersonCount(addressBook);
NSLog (@"npeople = %d = %d", nPeople, CFArrayGetCount(people));
for (CFIndex i = 0; i < nPeople; i++)
{
ABRecordRef record = CFArrayGetValueAtIndex(people,i);
ABMultiValueRef numbers = ABRecordCopyValue(record, kABPersonPhoneProperty);
CFIndex count = ABMultiValueGetCount(numbers);
NSLog (@"%d %d", i, count);
}
Я никогда не достигаю второго NSLog, он вылетает при вызове ABMultiValueGetCount с:
: * - [NSCFString count]: нераспознанный селектор отправлен на экземпляр 0x383e72f4
: * Завершение приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «*** - [NSCFString count]: нераспознанный селектор, отправленный экземпляру 0x383e72f4 '
Короче говоря, он ведет себя так, как будто моя переменная "numbers" была строкой NSString. Хотя я написал код выше себя, то же самое можно найти во многих примерах в Интернете. Здесь кто-то замечает что-то не так?
О, а также: происходит сбой только в режиме выпуска (в режиме отладки все в порядке).