The method has “Get” in it’s name and doesn’t return something via return. It takes a pointer for example to a CFStringRef, like this:
CFStringRef outValue;
UInt32 propertySize = sizeof(outValue);
AudioSessionGetProperty(propertyID, &propertySize, &outValue);
The documentation says that the function “copies” the value into the the provided outValue pointer.
So this is creating an object with a +1 retain count, and I am responsible for releasing / freeing that data?
According to the documentation for AudioSessionGetProperty, it depends on whether the property you are getting is a C type or if it is a core foundation value:
So if what you are getting is a core foundation property value, you will need to make sure to release the resulting object.
Note that using ARC will not automatically take care of this for you. From the ARC programming guide: