Frage

Ich bin Datensätze aus dem Adressbuch mit dem Apple bereitgestellt API zu lesen.

ich noch immer meinen Kopf um die Speicherverwaltung und so CFStrings verwechselst mich im Moment.

Dies ist, wie ich die Eigenschaften bin immer:

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

Danach habe ich die Werte verwenden, die einzige Sache ist, dass ich weiß nicht, ob ich sie lösen soll oder nicht.

Ich würde eine Antwort zu schätzen wissen, dass auch mir geholfen, besser zu verstehen, Speicherverwaltung oder dass Punkte mich in die richtige Richtung.

Danke!

War es hilfreich?

Lösung

Als Faustregel für Core Foundation ist, dass alle Funktionen, die Copy oder Create in ihrem Namen enthalten wird ein Objekt zurückgeben, dass Sie für die Freigabe verantwortlich sind. Apples

scroll top