Все данные адресной книги iPhone - PullRequest
0 голосов
/ 07 декабря 2011

Я хочу создать свою собственную адресную книгу, например адресную книгу iphone, в которой я собираюсь изменить некоторые поля в соответствии со своими потребностями.

Итак, я хотел бы скопировать все данные адресной книги iphone в базу данных sql. Пожалуйста, предоставьте мне любые ссылки или ссылки для этого.

необходимо знать операцию БД для хранения данных адресной книги

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 декабря 2011

Вместо того, чтобы копировать всю адресную книгу в БД (синхронизация всегда трудна), почему бы не сохранить ваши расширенные данные в БД с вашими справочными данными БД и объектами адресной книги?Если вы сделаете это, вы можете ссылаться на ABRecordRef id в вашей базе данных.

1 голос
/ 07 декабря 2011

вы можете загрузить записи адресной книги в массив NSMutable с помощью этой процедуры, а затем вы можете делать все, что вы хотите в своем приложении:

-(NSMutableArray*)loadContactsFromAddressBook{

NSMutableArray * contacts = [[NSMutableArray alloc] init];
ABAddressBookRef addressBook = ABAddressBookCreate( );
CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople( addressBook );
CFIndex nPeople = ABAddressBookGetPersonCount( addressBook );

for ( int i = 0; i < nPeople; i++ )
{

    ABRecordRef ref = CFArrayGetValueAtIndex( allPeople, i );

    NSString    *fname = (NSString*)ABRecordCopyValue(ref, kABPersonFirstNameProperty);        
    NSString    *lname = (NSString*)ABRecordCopyValue(ref, kABPersonLastNameProperty); 

    NSString    *name;
    NSString* phoneNumber;

    if (lname) {
        name = [fname stringByAppendingFormat: @" %@", lname];
    } else {
        name = fname;
    }

    ABMultiValueRef   phoneNumbers = ABRecordCopyValue(ref, kABPersonPhoneProperty);
    int count = ABMultiValueGetCount(phoneNumbers);

    if (count > 0 && name) {

        phoneNumber = (NSString*)ABMultiValueCopyValueAtIndex(phoneNumbers, 0);

        [contacts addObject:[NSMutableDictionary dictionaryWithObjectsAndKeys:name, @"member_name",
                             phoneNumber, @"phone",
                             @"NO", @"invited",
                             nil] ] ;
    }

    NSSortDescriptor *aSortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"member_name" ascending:YES];
    [contacts sortUsingDescriptors:[NSArray arrayWithObject:aSortDescriptor]];
}
return [contacts autorelease];
}

вам нужно добавить AddressBook.framework и AddressBookUI.framework в ваш проект и импортируйте файл AddressBook / AddressBook.h в класс, в котором вы используете этот метод.

Надеюсь, это поможет.

...