Ошибка подтверждения в - [UILabel setFont:] - PullRequest
0 голосов
/ 28 сентября 2011

Я получаю это исключение при установке шрифта UILabel в iOS 3.1.2, но в iOS 4 он работает нормально,

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: font != nil'

Строка кода:

Outbound_Label.font = [UIFont fontWithName:@"DS-Digital" size:24];

где DS-Digital - мой пользовательский шрифт.

Ответы [ 3 ]

1 голос
/ 28 сентября 2011

[UIFont fontWithName:@"DS-Digital" size:24] возвращает ноль. Потому что нет шрифта для «DS-Digital» ( Список поддерживаемых Apple шрифтов ). так что это дает сбой.

1 голос
/ 28 сентября 2011

Я предполагаю, что ваш пользовательский шрифт не был найден.

Всякий раз, когда у меня возникает такая проблема, когда происходят две вещи: получение шрифта и установка шрифта, я разделяю их, чтобы найти проблему:

UIFont *font = [UIFont fontWithName:@"DS-Digital" size:24];
Outbound_Label.font = font;

Тогда я могу определить, где ошибка легко, либо с помощью отладчика, либо NSLog().

На самом деле это очень понятный способ написания кода. Я никогда не беспокоюсь об оптимизации, я беспокоюсь только о ясности и простоте обслуживания. Позже, если у меня возникнут проблемы с производительностью, я найду реальных виновников и решу их. Чем чище код, тем проще.

В таком случае компилятор, несомненно, оптимизирует переменную шрифта, чтобы не было никакого вреда.

Смотрите это: ТАК ответ
Приложения, которые хотят использовать пользовательские шрифты, теперь могут включать эти шрифты в свой комплект приложений и регистрировать эти шрифты в системе, включив ключ UIAppFonts в их файл Info.plist. Значение этого ключа представляет собой массив строк, идентифицирующих файлы шрифтов в комплекте приложения. Когда система видит ключ, она загружает указанные шрифты и делает их доступными для приложения.

0 голосов
/ 28 сентября 2011

Пожалуйста, попробуйте это, у меня все отлично работает.

https://github.com/zynga/FontLabel

У меня есть шрифт DS-Digital http://www.fontriver.com/font/ds-digital/ и запустите указанное выше приложение с этим шрифтом, и оно работает с IOS 3.1.2.

Приветствие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...