我能够从联系人那里获得出生日期,但不能在iPhone上获取周年纪念日。我使用过KABPersonAnniversaryLabel,但它出错了。
答案 0 :(得分:1)
此代码将为所有联系人提取周年纪念日
ABAddressBookRef addressBook = ABAddressBookCreate();
CFArrayRef people = ABAddressBookCopyArrayOfAllPeople(addressBook);
for (CFIndex i = 0; i < CFArrayGetCount(people); i++) {
ABRecordRef person = CFArrayGetValueAtIndex(people, i);
ABMultiValueRef anniversaries = ABRecordCopyValue(person, kABPersonDateProperty);
NSString *anniversaryLabel;
for (CFIndex j=0; j < ABMultiValueGetCount(anniversaries); j++) {
anniversaryLabel = (NSString*)ABMultiValueCopyLabelAtIndex(anniversaries, j);
if([anniversaryLabel isEqualToString:(NSString *)kABPersonAnniversaryLabel])
{
NSDate *anniversaryDate=(NSDate *)ABMultiValueCopyValueAtIndex(anniversaries, j);
NSLog(@"%@",anniversaryDate);
}
}
CFRelease(anniversaries);
}
CFRelease(addressBook);
CFRelease(people);