UILabel внешний вид шрифта и атрибутивный строчный шрифт

В моем приложении у меня есть глобальный пользовательский шрифт, который применяется ко всем меткам, например:

UIFont *font = [UIFont fontWithName:kMyFontName size:15.0]; 
[[UILabel appearance] setFont:font];

Это отлично работает. Однако в некоторых случаях я хочу иметь возможность указать другой шрифт для конкретной области строки UILabel.

Итак, у меня есть что-то вроде этого:

NSString *string = @"Foo Bar Baz";
UIFont *boldFont = [UIFont fontWithName:kMyBoldFontName size:15.0]; 
NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc] initWithString:string];
[attrString setAttributes:@{ NSFontAttributeName: boldFont } range:NSMakeRange(0, 3)];
self.myLabel.attributedText = attrString;

Однако это не похоже на работу. Я ожидаю, что "Foo" будет жирным шрифтом, но вся строка имеет только шрифт по умолчанию. Это как если бы жирный шрифт вообще не применялся и перезаписывался шрифтом, установленным на прокси-сервере внешнего вида UILabel.

Когда я удаляю строку внешнего вида UILabel, она работает нормально (я вижу часть строки жирным шрифтом). По сути, я хочу, чтобы мой собственный шрифт был применен к метке, но отдельный шрифт был применен к другой области строки. Обычно это хорошо работает с приписанными строками, но по какой-то причине установка шрифта UILabel-отображения отключает эту функцию (или так кажется).

Ожидаемые результаты: "Foo Бар Баз "Фактические результаты: "Foo Bar Baz"

Если я удалю[[UILabel appearance] setFont:] Линия тогда работает:

"Foo Бар Баз "

(но пользовательский шрифт не установлен на остальной части строки).

Итак, мой вопрос: есть ли способ указать один шрифт, который будет использоваться в качестве приложения по умолчанию для всего приложения, но при этом будет возможность частично его переопределить, используя приписанные строки?

Также, если кто-то может объяснить мне, почему это не работает, я буду признателен.