Question

Je lis les enregistrements de la AddressBook en utilisant l'Apple fourni API.

Je reçois toujours ma tête autour de la gestion de la mémoire et ainsi CFStrings me sont confus pour le moment.

Voilà comment je reçois les propriétés:

//Get Basic properties
NSString* firstName = (NSString *)ABRecordCopyValue(person, kABPersonFirstNameProperty);
NSString* lastName = (NSString *)ABRecordCopyValue(person, kABPersonLastNameProperty);
NSNumber* record = [NSNumber numberWithInt:ABRecordGetRecordID(person)];

//Build Full Name
NSString* fullName=[self fullNameWith:firstName and:lastName];

//Get Phone number and Label
ABMultiValueRef phone = ABRecordCopyValue(person, property);
    //Turn identifier into index
CFIndex index = ABMultiValueGetIndexForIdentifier(phone, identifier);
    //Get the value and the label using the index
NSString *value =(NSString *)ABMultiValueCopyValueAtIndex(phone, index);
CFStringRef label = ABMultiValueCopyLabelAtIndex(phone, index);
    //Get the localized value of hte label
NSString * localizedLabel = (NSString *)ABAddressBookCopyLocalizedLabel(label);

Après que j'utilise les valeurs, la seule chose est que je ne sais pas si je devrais les libérer ou non.

J'apprécierait une réponse qui m'a aussi aidé à comprendre moi une meilleure gestion de la mémoire ou qui pointe vers la bonne direction.

Merci!

Était-ce utile?

La solution

La règle de base pour le Core Foundation est que toutes les fonctions qui incluent Copy ou Create en leur nom retourne un objet que vous êtes responsable de la libération. Apple

scroll top