2009-12-16 5 views
0

Я работаю с ABAddressBook. Я проверил документы API, но не смог найти ни одного API, связанного с созданием нового ABRecord. Но в ABAddressBook доступен способ ABAddressBookAddRecord. Но я не нашел никаких API-интерфейсов для создания новой записи. Есть какой-либо способ сделать это?Создание нового ABRecord

С наилучшими пожеланиями,

Мухаммед Садик.

+3

Люди с большей вероятностью ответят на ваш вопрос, если вы принимаете ответы на свои предыдущие вопросы. –

ответ

4
// create new address book person record 
ABRecordRef aRecord = ABPersonCreate(); 
CFErrorRef anError = NULL; 
// adjust record firstname 
ABRecordSetValue(aRecord, kABPersonFirstNameProperty, 
           CFSTR("Jijo"), &anError); 
// adjust record lastname 
ABRecordSetValue(aRecord, kABPersonLastNameProperty, 
           CFSTR("Pulikkottil"), &anError); 
if (anError != NULL) { 
    NSLog(@"error while creating.."); 
} 

CFStringRef firstName, lastName; 
firstName = ABRecordCopyValue(aRecord, kABPersonFirstNameProperty); 
lastName = ABRecordCopyValue(aRecord, kABPersonLastNameProperty); 

ABAddressBookRef addressBook; 
CFErrorRef error = NULL; 
addressBook = ABAddressBookCreate(); 

// try to add new record in the address book 
BOOL isAdded = ABAddressBookAddRecord (addressBook, 
             aRecord, 
             &error 
); 

// check result flag 
if(isAdded){ 
    NSLog(@"added.."); 
} 
// check error flag 
if (error != NULL) { 
    NSLog(@"ABAddressBookAddRecord %@", error); 
} 
error = NULL; 

// save changes made in address book 
BOOL isSaved = ABAddressBookSave (
           addressBook, 
           &error 
); 

// check saved flag 
if(isSaved){ 
    NSLog(@"saved.."); 
} 

// check error flag 
if (error != NULL) { 
    NSLog(@"ABAddressBookSave %@", error); 
} 

CFRelease(aRecord); 
CFRelease(firstName); 
CFRelease(lastName); 
CFRelease(addressBook);