2012-12-27 14 views
5

Desidero creare un nuovo contatto nella rubrica. Il problema appare quando si vogliono memorizzare più URL (indirizzi Web su alcuni social network). Il mio codice funziona perfettamente nel simulatore di iOS6. Ma nel vero iPhone con iOS6, memorizza tutti i valori tranne gli URL. Ho cercato per qualche giorno e non riesco a trovare una soluzione, sarò molto grato se qualcuno può aiutare.Rubrica indirizzi url multivalore iphone

Il mio codice:

-(void) addContactToAddressBook:(ABAddressBookRef) iPhoneAddressBook 
{ 

    CFErrorRef error = NULL; 

    ABRecordRef newPerson = ABPersonCreate(); 

    //Name and phone number 
    ABRecordSetValue(newPerson, kABPersonFirstNameProperty, (__bridge CFStringRef)_nameField.text, &error); 
    ABMutableMultiValueRef multiPhone = ABMultiValueCreateMutable(kABMultiStringPropertyType); 
    ABMultiValueAddValueAndLabel(multiPhone, (__bridge CFStringRef)_phoneField.text, kABPersonPhoneMainLabel, NULL); 
    ABRecordSetValue(newPerson, kABPersonPhoneProperty, multiPhone,nil); 

    //Email value 
    ABMutableMultiValueRef emailMultiValue = ABMultiValueCreateMutable(kABMultiStringPropertyType); 
    ABMultiValueAddValueAndLabel(emailMultiValue, (__bridge CFStringRef)_emailField.text, kABWorkLabel, NULL); 
    ABRecordSetValue(newPerson, kABPersonEmailProperty, emailMultiValue, nil); 
    CFRelease(emailMultiValue); 

    //URL values 
    ABMutableMultiValueRef urlMultiValue = ABMultiValueCreateMutable(kABMultiStringPropertyType); 
    ABMultiValueAddValueAndLabel(urlMultiValue, (__bridge CFStringRef)_FacebookField.text, (CFStringRef)@"Facebook", NULL); 
    ABMultiValueAddValueAndLabel(urlMultiValue, (__bridge CFStringRef)_twitterField.text, (CFStringRef)@"Twitter", NULL); 
    ABMultiValueAddValueAndLabel(urlMultiValue, (__bridge CFStringRef)_linkedinField.text, (CFStringRef)@"Linkedin", NULL); 
    ABMultiValueAddValueAndLabel(urlMultiValue, (__bridge CFStringRef)_googleField.text, (CFStringRef)@"Google+", NULL); 
    ABRecordSetValue(newPerson, kABPersonURLProperty, urlMultiValue, nil); 
    CFRelease(urlMultiValue); 

    ABAddressBookAddRecord(iPhoneAddressBook, newPerson, &error); 

    ABAddressBookSave(iPhoneAddressBook, &error); 
    if (error != NULL) 
    { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error" message:@"Contact not saved" delegate:nil cancelButtonTitle:@"Cancel" otherButtonTitles:nil, nil]; 
     [alert show]; 
    }else{ 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Contact saved" message:@"Your contact was successfully saved" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil]; 
     [alert show]; 
    } 
} 

Grazie!

+0

Qualcuno può aiutarmi per favore? Non riesco a trovare una soluzione .... Grazie. – Joan

risposta

0

Come per la documentazione sul sito Apple (scorrere verso il basso fino a Privacy nella parte centrale della pagina), l'accesso alla rubrica deve essere concesso prima che possa essere accesso a livello di programmazione. Ecco cosa ho finito per fare.

Problemi correlati