首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ABAddressBook获取生日属性

ABAddressBook获取生日属性
EN

Stack Overflow用户
提问于 2011-02-04 14:11:44
回答 2查看 1.8K关注 0票数 0

我正在尝试从我的iphone上的ABAddressBook获取生日属性。我在网上浏览了一些讨论,大多推荐相同的答案,我自己也试过了,如下所示。但这对我来说仍然不起作用,所以我想知道我是否遗漏了其他东西……

代码语言:javascript
复制
        dayFormatter = [[[NSDateFormatter alloc] init]autorelease];
    [self.dayFormatter setDateFormat:@"MMMM d"];        

    NSString* today = [dayFormatter stringFromDate:[NSDate date]];
    NSLog(@"today:%@", today);
    NSLog(@"date:%@", [NSDate date]); // this works fine


    NSDate *bday = (NSDate*)ABRecordCopyValue(personRecord,kABPersonBirthdayProperty);
    NSLog(@"bdayyyy:%@", bday); // this doesn't work.


    NSString* personBday = [dayFormatter stringFromDate:bday];
    NSLog(@"Bday:%@", personBday);

任何帮助都非常感谢..谢谢。

EN

回答 2

Stack Overflow用户

发布于 2013-08-22 21:21:38

这对我来说很有效:

代码语言:javascript
复制
NSDate* birthDate = (__bridge_transfer NSDate*)ABRecordCopyValue(addressBookContact, kABPersonBirthdayProperty);
票数 0
EN

Stack Overflow用户

发布于 2013-11-29 21:05:47

试试这个:

代码语言:javascript
复制
 ABAddressBookRef myAddressBook = ABAddressBookCreate();
 NSArray *allPeople = (NSArray *)ABAddressBookCopyArrayOfAllPeople(myAddressBook);

 for (id record in allPeople) {
     NSMutableDictionary *newRecord = [[NSMutableDictionary alloc] init];
     CFTypeRef bDayProperty = ABRecordCopyValue((ABRecordRef)record, kABPersonBirthdayProperty);

     if (ABRecordCopyValue((ABRecordRef)record, kABPersonBirthdayProperty)) 
       {
         NSDate *date=(NSDate*)bDayProperty;
         [newRecord setObject:date forKey:@"birthDate"];
         date=nil;
         [date release]; 
     }
    CFRelease(myAddressBook);
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4895094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档