Можно ли получить время создания записи контактов iPhone?

Я хочу задать вопрос об iPhone. Можно ли получить время создания из контактов iPhone каждой записи? Спасибо.


person Questions    schedule 24.09.2010    source источник


Ответы (2)


да. Вы хотите kABPersonCreationDateProperty. См. ссылка.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];    

ABAddressBookRef addressBook = ABAddressBookCreate();

NSArray* allPeople = (NSArray*) ABAddressBookCopyArrayOfAllPeople( addressBook );
for( id aPerson in allPeople ) {
    NSString* firstName = (NSString*) ABRecordCopyValue( aPerson, kABPersonFirstNameProperty );
    NSString* lastName = (NSString* ) ABRecordCopyValue( aPerson, kABPersonLastNameProperty );
    NSDate* createDate = (NSDate*) ABRecordCopyValue( aPerson, kABPersonCreationDateProperty );
    NSString* formattedDate = [dateFormatter stringFromDate:createDate];

    NSLog( @"%@ %@ created %@", firstName, lastName, formattedDate );

    [firstName release];
    [lastName release];
    [createDate release];
}

[allPeople release];
[dateFormatter release];
CFRelease(addressBook);

Какие выходы...

AddressBookTest[6202:207] Zacharias Pasternack created 9/24/10 9:03:34 AM PDT
AddressBookTest[6202:207] Some Other Guy created 9/24/10 9:07:18 AM PDT
person zpasternack    schedule 24.09.2010

Для iOS6+ немного по-другому:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];

/* -> I left out the ask for permission code here */

ABAddressBookRef addressBook = ABAddressBookCreateWithOptions(NULL, nil);

if (addressBook != nil)
{        
    NSArray *allPeople = (__bridge_transfer NSArray
                            *)ABAddressBookCopyArrayOfAllPeople(addressBook);

    for( id contactPerson in allPeople )
    {
        NSString *firstName = (__bridge_transfer NSString
                               *)ABRecordCopyValue((__bridge ABRecordRef)(contactPerson), kABPersonFirstNameProperty);

        NSDate* createDate = (__bridge_transfer NSDate*) ABRecordCopyValue((__bridge ABRecordRef)(contactPerson), kABPersonCreationDateProperty );
        NSString* formattedDate = [dateFormatter stringFromDate:createDate];

        NSLog( @"%@ created %@", firstName, formattedDate );
    }
}

CFRelease(addressBook);
person Thomas    schedule 29.04.2014