iPhone SDK: ошибка подтверждения в - [UILabel setFont:] - PullRequest
1 голос
/ 15 октября 2008

У меня есть приложение для iPhone, которое прекрасно компилируется и работает в симуляторе на моем ноутбуке. Теперь я пытаюсь собрать и запустить тот же код в симуляторе на iMac, и он запускается и позволяет мне нажимать кнопку, но затем я получаю ошибку подтверждения.

Вот что в консоли:

*** Assertion failure in -[UILabel setFont:], /SourceCache/UIKit/UIKit-738/UILabel.m:438
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid parameter not satisfying: font != nil'
Stack: (
2493366603,
2432871995,
2493366059,
2459146836,
817183141,
817926218,
837317240,
837317032,
837315376,
837314643,
2492860866,
2492867620,
2492869880,
85304,
85501,
816175835,
816221412,
9096,
8930
)

Вот трассировка стека:

#0  0x949dbff4 in ___TERMINATING_DUE_TO_UNCAUGHT_EXCEPTION___
#1  0x9102ae3b in objc_exception_throw
#2  0x94962ad3 in CFRunLoopRunSpecific
#3  0x94962cf8 in CFRunLoopRunInMode
#4  0x00014d38 in GSEventRunModal
#5  0x00014dfd in GSEventRun
#6  0x30a5dadb in -[UIApplication _run]
#7  0x30a68ce4 in UIApplicationMain
#8  0x00002388 in main at main.m:16

Мой код не делает никаких прямых вызовов setFont :. Тем не менее, это будет момент выполнения программы, когда некоторые кнопки становятся видимыми впервые.

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

Есть идеи, что такое настоящая причина?

(Пожалуйста, не ныть о NDA.)


Обновление: Если я поменяю шрифт некоторых моих кнопок с «TimesNewRomanPS-BoldMT» на «Times», то ошибка подтверждения больше не возникает. Но почему я не могу использовать нужный шрифт, который существует на iPhone, установлен на новом компьютере и доступен для выбора в Интерфейсном Разработчике?

Ответы [ 5 ]

1 голос
/ 05 сентября 2010

Была такая же проблема, но в особой ситуации. Только когда код был скомпилирован для iOS 4, но развернут на устройстве с 3.1.3 Удалено Arial-Narrow и все заработало.

1 голос
/ 28 февраля 2009

И если это не UILabel, это может быть кнопка UIB (которая содержит UILable) и т. Д.

1 голос
/ 15 октября 2008

Если у вас есть UILabels в вашем xib-файле, они могут быть каким-то образом повреждены, или вы могли установить для них шрифт, которого нет на обеих ваших машинах (вы можете использовать команду T при редактировании UILabel для вызвать средство выбора шрифта; не уверен, что можно установить шрифт не iPhone, но это может быть). В противном случае, попробуйте удалить UILabels из вашего xib-файла до тех пор, пока он не запустится, и это ваш виновник.

0 голосов
/ 21 апреля 2012

Мы столкнулись с этой проблемой, потому что мы использовали [UIFont fontWithName:fontSize:] с именем Helvatica Bold (с пробелом) вместо Helvetica-Bold (с тире). Helvatica Bold очевидно работает на текущих версиях ОС, но не на iOS 3.1. Helvetica-Bold представляется верной версией.

0 голосов
/ 14 июля 2009

Не все доступны в iphone, только определенные шрифты.

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