0

我在 iOS 3.1.2 中设置 UILabel 字体时遇到此异常,但在 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 是我的自定义字体。

4

3 回答 3

1

我的猜测是您的自定义字体没有被实例化。

每当我遇到这样的问题时,会发生两件事:获取字体和设置字体,我将它们分开以查找问题:

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

然后我可以使用调试器或NSLog().

事实上,首先这是编写代码的一种非常清晰的方式。我从不担心优化,我只担心清晰度和易于维护。稍后,如果我分析了性能问题,找到真正的罪魁祸首并解决它们。代码越清晰越容易。

在这种情况下,编译器无疑会优化掉字体变量,因此没有任何危害。

看到这个:所以回答
想要使用自定义字体的应用程序现在可以在他们的应用程序包中包含这些字体,并通过在他们的 Info.plist 文件中包含 UIAppFonts 键来向系统注册这些字体。该键的值是一个字符串数组,用于标识应用程序包中的字体文件。当系统看到密钥时,它会加载指定的字体并使它们对应用程序可用。

于 2011-09-28T10:51:50.560 回答
1

[UIFont fontWithName:@"DS-Digital" size:24]返回零。因为“DS-Digital”(Apple 支持的字体列表)没有可用的字体。所以它给了崩溃。

于 2011-09-28T10:57:04.633 回答
0

请试试这个,它对我来说很好用。

https://github.com/zynga/FontLabel

我从http://www.fontriver.com/font/ds-digital/下载了 DS-Digital 字体 并使用此字体运行上述应用程序,它适用于 IOS 3.1.2。

干杯。

于 2011-09-28T10:59:08.843 回答