iPhone联系人周年纪念日

时间:2013-01-09 11:16:36

标签: iphone

我能够从联系人那里获得出生日期,但不能在iPhone上获取周年纪念日。我使用过KABPersonAnniversaryLabel,但它出错了。

1 个答案:

答案 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);