Вам необходимо ознакомиться с правилами управления памятью , прежде чем приступить к дальнейшей разработке - это избавит вас от многих неприятностей.
Clang (не компилятор) жалуется, потому что вы возвращаете +1 сохраненный объект (непревзойденный init) из метода, имя которого указывает, что он возвращает автоматически выпущенный объект.
Затем (как утверждает Ник) вы, вероятно, возвращаете автоматически освобожденный объект из sectionLabelHeader (). Таким образом, чрезмерное сохранение «представления» скрывает чрезмерное сохранение «ярлыка».
Наконец, почему вы используете функцию C для возврата UILabel *? Это законно AFAIK, но довольно неортодоксально. Меня не удивит, если это подстегнет и Кленга. Это, безусловно, вызовет проблемы, если / когда вы перейдете на автоматический подсчет ссылок (ARC). Я бы порекомендовал вам вместо этого использовать метод или метод класса, если вы собираетесь на фабрику.