Согласно документации для AudioSessionGetProperty, это зависит от того, является ли свойство, которое вы получаете, типом C или оно является базовым базовым значением:
Некоторые значения свойств Core Audio являются типами C, а другие являются объектами Core Foundation:
Если вы вызываете эту функцию для получения значения, которое является основным
Объект Foundation, затем эта функция - несмотря на использование «Get» в его
имя - дублирует объект. Вы несете ответственность за освобождение
объект, как описано в «Правиле создания» в управлении памятью
Руководство по программированию для Core Foundation.
Так что, если то, что вы получаете, является базовым значением свойства основания, вам нужно обязательно освободить результирующий объект.
Обратите внимание, что использование ARC не позаботится об этом автоматически. Из руководства по программированию ARC:
Во многих приложениях Какао вам нужно использовать Core Foundation-style
объекты, будь то из самой основы Core Foundation (например,
CFArrayRef или CFMutableDictionaryRef) или из структур, которые принимают
Основные базовые соглашения, такие как Core Graphics (вы можете использовать типы
как CGColorSpaceRef и CGGradientRef).
Компилятор не управляет временем жизни ядра автоматически
Фундаментные объекты; Вы должны позвонить CFRetain и CFRelease (или
соответствующие типоспецифичные варианты) в соответствии с требованиями
Основные правила управления памятью (см. Программирование управления памятью)
Руководство по основному основанию).
Если вы применяете объекты Objective-C и Core Foundation, вы
нужно сообщить компилятору о семантике владения объектом
используя приведение (определенное в objc / runtime.h) или Core
Макрос в стиле Foundation (определенный в NSObject.h):