2010-04-20 19 views

Respuesta

11

Tenía exactamente la misma pregunta. No pude encontrar una respuesta, así que probé el método de adivinar y verificar. El siguiente código parece funcionar:

CFErrorRef error = NULL; 
ABAddressBookRef iPhoneAddressBook = ABAddressBookCreate(); 
ABRecordRef newPerson = ABPersonCreate(); 
ABRecordSetValue(newPerson, kABPersonFirstNameProperty, @"Jane", &error); 
ABRecordSetValue(newPerson, kABPersonLastNameProperty, @"Smith", &error); 

const CFStringRef customLabel = CFSTR("mylabel"); 

//phone 
ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType); 
ABMultiValueAddValueAndLabel(multiPhone, @"1-444-444-444", kABPersonPhoneMainLabel, NULL); 
ABMultiValueAddValueAndLabel(multiPhone, @"1-333-333-333", kABPersonPhoneMobileLabel, NULL);    
ABMultiValueAddValueAndLabel(multiPhone, @"1-666-666-666", kABOtherLabel, NULL);   
ABMultiValueAddValueAndLabel(multiPhone, @"1-555-555-555", customLabel, NULL); 
ABRecordSetValue(newPerson, kABPersonPhoneProperty, multiPhone,nil); 
CFRelease(multiPhone); 

ABAddressBookAddRecord(iPhoneAddressBook, newPerson, &error); 
ABAddressBookSave(iPhoneAddressBook, &error); 

if (error != NULL) 
{ 
    NSLog(@"Error!"); 
} 

Si marca la libreta de direcciones, verá un número de teléfono con una etiqueta personalizada: mylabel

Gracias a: this post

ya: this blog

+0

Me funciona bien, ¡muchas gracias! – Will

Cuestiones relacionadas