Domanda

Sto leggendo record dalla rubrica utilizzando l'API di Apple fornito.

io sono ancora ottenere la mia testa intorno la gestione della memoria e così CFStrings mi stanno confondendo in questo momento.

Questo è come io sono sempre le proprietà:

//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);

Dopo che io uso i valori, l'unica cosa è che non so se io li rilasciare o meno.

I gradirebbe una risposta che anche mi ha aiutato a capire meglio la gestione della memoria o che mi indica la direzione giusta.

Grazie!

È stato utile?

Soluzione

La regola generale per il core della Fondazione è che le funzioni che includono Copy o Create nel loro nome si restituiscono un oggetto che siete responsabili per il rilascio. Apple Guida alla gestione della memoria per core Fondazione spiega questo in un po 'più in dettaglio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top