2008-10-15 4 views
1

У меня есть приложение для iPhone, которое компилируется и отлично работает в симуляторе на моем ноутбуке. Теперь я пытаюсь создать и запустить тот же код в Simulator на iMac, и он запускается и позволяет мне нажать кнопку, но затем я получаю отказ от утверждения.iPhone SDK: ошибка подтверждения в - [UILabel setFont:]

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

*** 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 :. Однако это будет точкой в ​​ходе выполнения программы, когда некоторые кнопки становятся видимыми в первый раз.

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

Любые идеи, какова настоящая причина?

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


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

+0

Удивительно то же самое. Это только начало со мной происходить ... с Хельветикой! – lawrence 2009-05-21 08:54:29

+0

И это происходит только с UIButton, а не с UILabel. – lawrence 2009-05-21 08:56:29

ответ

1

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

1

И если это не UILabel, это может быть UIButton (который содержит UILable) и т.д.

0

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

1

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

0

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