Swift iOS10中的UIFont.fontName不';t return“;正规的;后缀

Swift iOS10中的UIFont.fontName不';t return“;正规的;后缀,swift,ios10,uifont,Swift,Ios10,Uifont,在我的应用程序中成功迁移到swift 2.3后,我发现了一个字体故障 我有一个UIFont的扩展,将系统字体更改为自定义字体。 在iOS 9和更早的版本中,一切都按预期进行。在iOS 10中没有 问题出在self.fontName中。通常,它应该返回“fontName”+样式后缀(例如:常规、粗体等) 但是,在iOS 10中,对于常规样式,它不会只返回后缀“fontName” 我用谷歌搜索找到了原因,但什么也找不到。 问题已经解决了,但我不知道为什么会发生这种情况。有什么想法吗?使用字体名称从来

在我的应用程序中成功迁移到swift 2.3后,我发现了一个字体故障

我有一个
UIFont
的扩展,将系统字体更改为自定义字体。 在iOS 9和更早的版本中,一切都按预期进行。在iOS 10中没有

问题出在
self.fontName
中。通常,它应该返回“fontName”+样式后缀(例如:常规、粗体等)

但是,在iOS 10中,对于常规样式,它不会只返回后缀“fontName”

我用谷歌搜索找到了原因,但什么也找不到。
问题已经解决了,但我不知道为什么会发生这种情况。有什么想法吗?

使用字体名称从来都不是个好主意


使用
fontDescriptor
并检查
UIFontDescriptor
fontAttributes
symbolicTraits
以获取有关所述字体的信息。然后,您可以使用修改过的属性和/或特征创建一个新描述符,并使用
init(描述符:size:)
iOS
devs决定在字体名称中删除后缀,从而获得具有该描述符的字体。那又怎么样?字体名称仅供内部使用。你对原始字体名称做了什么?没有检查,但是你可能想使用字体描述符而不是名称作为后缀。另外,后缀并不仅仅用于样式,因为它可以包含铸造厂。感谢您的解释。