Search code examples
iphoneiosobjective-ccore-foundation

CFAutoRelease() -like behavior on iOS6


I have a method that creates an ABRecordRef, sets its properties and returns the ref.

I'm encountering a crash when I use CFAutoRelease because I need to support iOS <7. how would I go about to properly releasing this?

-(ABRecordRef) myRecord{
 ABRecordRef newRecord = ABPersonCreate();
//some setting here
return CFAutoRelease(newRecord); //how to release here?
}

Solution

  • For CoreFoundation references, I actually wouldn't release that reference in your myRecord method. Instead I would define the interface such that the caller of myRecord owns the reference and is responsible for releasing it.