Я читаю контакты адресной книги ... все идет хорошо, пока я не проверю контакт с нет
Имя (Так как я могу создать контакт только с помощью электронной почты, телефона или другого пользователя).
Код (сокращенный) такой:
- (NSMutableArray *) getContactsInfo {
NSMutableArray *contactsList = [[NSMutableArray alloc] init];
localAddressBook = ABAddressBookCreate();
int contactsLength = (int)ABAddressBookGetPersonCount(localAddressBook);
if (contactsLength < 1)
return nil;
for(int currentContact=1; currentContact < (contactsLength + 1); currentContact++) {
ABRecordRef person = ABAddressBookGetPersonWithRecordID(localAddressBook,(ABRecordID) currentContact);
firstName = (NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
NSLog(@"%@", firstName);
[contactsList addObject:firstName];
CFRelease(person);
}
return contactsList;
}
и вывод, который я получаю, таков:
2010-02-15 14:16:25.616 testApp[7065:207] Contact0
2010-02-15 14:16:25.618 testApp[7065:207] Contact1
2010-02-15 14:16:25.619 testApp[7065:207] Contact2
Program received signal: “EXC_BAD_ACCESS”.
У меня 3 контакта с именами и фамилиями
И один, созданный только с фамилией, для целей тестирования.
Кажется, я могу правильно прочитать любое свойство, такое как электронная почта или адрес, с массивами ... но когда контакту не хватает свойства имени, приложение вылетает.