私はアドレス帳プログラミングの初心者です。名簿からすべてのメールIDを取得したいのですが、以下の問題は、コードが1つのレコード(1人)のすべてのデータを取得することです。しかし、アドレス帳に複数の連絡先を追加した場合。例外なくつぶれます。
助言がありますか?前もって感謝します。
self.pastUrls = [[NSMutableArray alloc] init];
ABAddressBookRef addressBook = ABAddressBookCreate();
NSArray *addresses = (NSArray *) ABAddressBookCopyArrayOfAllPeople(addressBook);
// you could probably do some kind of enumeration but I'm doing old fashoined way
int i;
for(i = 0; i < [addresses count]; i++) {
ABRecordRef record = [addresses objectAtIndex:i];
ABMultiValueRef multiValue = ABRecordCopyValue(record, kABPersonEmailProperty);
NSLog(@"%@",multiValue);
int count = ABMultiValueGetCount(multiValue);
NSLog(@"%d",count);
int j;
for(j = 0; j < count; j++) {
NSString *label = (NSString *)ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(multiValue, i));
NSString *value = (NSString *)ABMultiValueCopyValueAtIndex(multiValue, i);
//NSLog(@"Email for %@: %@", label, value);
[pastUrls addObject:value];
}
}
よろしく、sathish