1

我正在自定义UINavigationBariOS 6 下的 iOS 应用程序。因此,我正在使用setTitleTextAttributes来执行此操作。

不过具体设置

NSDictionary *attribute = @{UITextAttributeFont : [UIFont fontWithName:@"Bernard MT Condensed" size:21.0]};

导致应用程序在设备上崩溃,但不在模拟器中崩溃,以下情况除外:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: 
attempt to insert nil object from objects[0]'

我发现这个问题似乎属于同一类型,但我的设备模拟器都设置为完全相同的区域设置(语言、区域格式)。

值得注意的一个事实是,在这两种环境中,区域设置都设置为美式英语,但我显示的是带有丹麦特殊字符的丹麦区域格式的文本,但是,如前所述,它确实在模拟器上工作。

4

1 回答 1

3

您使用的字体是自定义字体,需要将字体文件添加到应用程序的资源和 Info.plist 中的条目。

文件名大小写在真实设备上很重要,但在模拟器上不重要。您需要确保 Info.plist 中的条目与实际字体文件的真实文件名(包括大小写)匹配。

对于那些认为使用模拟器就足够了的人来说,这是在真实设备上进行测试至关重要的众多原因之一。

于 2012-11-24T20:09:58.543 回答