J'importe les informations de contacts dans certains champs de texte, mais les application se bloque s'il n'y a aucune entrée pour certains champs, comme le téléphone, le courrier électronique, etc.Importer AddressBook Coordonnées, comment gérer les champs vides?
Voici mes textfields:
First Name
Middle Name
Last Name
Main Phone
Mobile Phone
Email Address
Website
Suppose le contact sélectionné n'a pas de deuxième numéro de téléphone (dans ce cas: téléphone portable) ou il n'y a aucune entrée d'URL pour le contact. L'application se bloque.
*ABMutableMultiValueRef phoneMulti = ABRecordCopyValue(person, kABPersonPhoneProperty);
NSMutableArray *phones = [[NSMutableArray alloc] init];
int i;
for (i = 0; i < ABMultiValueGetCount(phoneMulti); i++) {
NSString *aPhone = [(NSString*)ABMultiValueCopyValueAtIndex(phoneMulti, i) autorelease];
[phones addObject:aPhone];
}
accountPhone1TextField.text = [phones objectAtIndex:0];
accountPhone2TextField.text = [phones objectAtIndex:1];
CFRelease(phoneMulti);
[phones release];*
Ou si je suis en train d'obtenir une adresse e-mail du contact et il ne marche pas ce plantera existe:
NSString *anEmail = [(NSString*)ABMultiValueCopyValueAtIndex(emailMulti, i) autorelease];
//Variable is not a CFString
***** ***** MISE A JOUR
Nous avons fini en utilisant le code suivant:
ABMutableMultiValueRef emailMulti = ABRecordCopyValue(person, kABPersonEmailProperty);
NSMutableDictionary *myEmailDict = [NSMutableDictionary dictionaryWithCapacity:ABMultiValueGetCount(emailMulti)];
for (CFIndex i = 0; i < ABMultiValueGetCount(emailMulti); i++) {
emailLabel = ABAddressBookCopyLocalizedLabel(ABMultiValueCopyLabelAtIndex(emailMulti, i));
email = ABMultiValueCopyValueAtIndex(emailMulti, i);
[myEmailDict setObject:(NSString*)email forKey:(NSString*)emailLabel];
CFRelease(email);
CFRelease(emailLabel);
}
J'ai essayé .. mais NSString * anEmail = [(NSString *) ABMultiValueCopyValueAtIndex (emailMulti, i) autorelease]; car il n'y a pas d'adresse email – WrightsCS
Utilisez-vous kABPersonEmailProperty? – LarsJK
oui, mais pour une raison quelconque, s'il n'y a pas d'enregistrements pour les champs Email ... il produit un plantage. – WrightsCS