【发布时间】:2008-10-15 03:04:44
【问题描述】:
我有一个 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、更改他们的时区或其他奇怪的东西时,这个问题得到了神奇的解决。
你知道真正的原因是什么吗?
(请不要抱怨保密协议。)
更新:如果我将某些按钮的字体从“TimesNewRomanPS-BoldMT”更改为“Times”,则不再发生断言失败。但是为什么我不能使用所需的字体,它存在于 iPhone 上,安装在新机器上,并且可以在 Interface Builder 中选择?
【问题讨论】:
-
想知道同样的事情。这也刚开始发生在我身上……使用 Helvetica!
-
而且它只发生在 UIButton 上,而不是 UILabel。
标签: iphone