сеттеры обычно имеют префикс set
. Попробуйте вместо этого:
[tableView setTableHeaderView:label];
То есть это:
tableView.tableHeaderView = label;
преобразуется в:
[tableView setTableHeaderView:label];
автоматически компилятором при использовании точечной нотации.
Когда объявляет свойство objc, это соглашение также применяется к объявленному имени свойства для установщика (снова по умолчанию).
Получатели не используют это соглашение, их селекторы (по умолчанию) совпадают с объявленным именем свойства:
view = tableView.tableHeaderView;
невероятно похож на:
view = [tableView tableHeaderView];