2012-04-18 40 views
10

sto studiando la programmazione iOS.Quando si utilizza CFRelease?

Ho scritto un codice che associava un indirizzo.

ci sono tanti metodi. come

sto dividendo un gruppo.

ecco group1

ABAddressBookCreate(); 
ABRecordCopyCompositeName(argument); 
ABRecordCopyValue(argument1, argument2); 
ABRecordCopyValue(argument1, argument2); 
ABMultiValueCopyLabelAtIndex(argument1, argument2); 
ABMultiValueCopyValueAtIndex(argument1, argument2); 

e un altro è proprio qui, group2

CFArrayGetCount(argument); 
CFArrayGetValueAtIndex(argument1, argument2); 
ABMultiValueGetCount(argument); 

So che ci sono tanti altri metodi.

ma mi chiedo quando uso il metodo CFRelease.

Penso di Group2 tutti i metodi non fanno CFRelease

perché che contengono la parola "Get", non è allocato.

e penso group1 di tutto il metodo devono usare CFRelease

perché c'è una "copia" stringa.

ho un libro.

ma CFRelease utilizzato due volte.

uno è rilascio ABAddressBookCreate()

altro è ABAddressBookCopyPeopleWithName.

tutte le altre cose non usano CFRelease.

quindi mi chiedo quando uso CFRelease.

per favore dimmi quando uso CFRelease.

risposta

9

Se il nome della funzione contiene "Copia" o "Crea", allora si possiede l'oggetto, quindi è necessario rilasciarlo quando hai finito il tuo lavoro con esso. Questo è chiamato "The Create Rule". Per ulteriori informazioni sulla gestione della memoria per Core Foundation, è possibile fare riferimento a Memory Management Programming Guide for Core Foundation

+0

Ehi, ho lo stesso problema. Probabilmente sto rilasciando alcuni oggetti della Core Foundation nel modo sbagliato. Voglio chiedere come posso eseguire il debug del conto di conservazione per ogni oggetto e sapere con certezza che posso rilasciarlo. – Sosily

+1

Eseguire l'analizzatore statico e controllare ogni oggetto copiato, creato o mantenuto se è stato rilasciato correttamente. – graver

+0

Grazie amico! è a posto adesso! – Sosily

3

Quando si crea un oggetto Core Foundation o ne diventa il proprietario, si chiama CFRelease.

sguardo al CFMemory management documentazione

Problemi correlati