为什么在我的应用程序的plist中添加自定义字体会阻止故事板的初始场景加载?

时间:2016-03-16 15:29:50

标签: ios storyboard

我有一个main.storyboard的应用,其中一个场景已正确设置为初始视图控制器。当我启动应用程序并运行它时,此场景会按预期出现。

当我尝试向项目添加自定义字体时,会出现问题。当我编辑info.plist以在Fonts provided by application部分中包含字体,然后尝试运行应用程序时,它仍然停留在启动屏幕上,并且从不加载故事板中的初始场景。如果我从Fonts provided ...文件中删除info.plist部分并再次运行,则初始屏幕会按预期加载。

我在这里做错了什么?条目中的条目在哪里(如顶部或底部)是否重要?

1 个答案:

答案 0 :(得分:1)

因此,我发现我的代码在尝试调用CGFontCreateWithDataProvider时完全挂起/冻结(这是注册自定义字体的必要部分)。这是在加载任何其他内容之前调用的,因此冻结此调用会阻止主屏幕出现。

“修复”(从几乎无关的帖子中收集)是在拨打CGFontCreateWithDataProvider之前添加此行:

UIFont.familyNames() // you don't need to iterate this array or do anything with it

不再挂起,app会像以前一样启动,自定义字体也能正常运行。