ABAddressBook получить подарок на день рождения - PullRequest
0 голосов
/ 04 февраля 2011

Я пытаюсь получить свойство дня рождения от ABAddressBook на моем iphone.Я просмотрел некоторые обсуждения в Интернете и в основном рекомендую тот же ответ, который я попробовал сам, как показано ниже.Но это все еще не работает для меня, поэтому мне интересно, пропустил ли я что-то еще ...

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

любая помощь очень ценится .. Спасибо.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2013

Попробуйте это:

 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 голосов
/ 22 августа 2013

Это работает для меня:

NSDate* birthDate = (__bridge_transfer NSDate*)ABRecordCopyValue(addressBookContact, kABPersonBirthdayProperty);
...