我们将很多字体与我们的 iOS 应用程序捆绑在一起,并将它们全部放入UIAppFonts
以加快加载速度。
(我们在内部使用它们UIWebView
,它比使用加载文件快得多)@font-face
。
然而,这导致我偶尔会收到这种警告:
Mar 13 23:07:16 iPad afcd[2582] <Error>: Max open files: 78
Mar 13 23:07:17 iPad mobile_house_arrest[2584] <Error>: Max open files: 78
Mar 13 23:07:17 iPad mobile_house_arrest[2586] <Error>: Max open files: 78
Mar 13 23:07:17 iPad mobile_house_arrest[2587] <Error>: Max open files: 78
Mar 13 23:07:17 iPad mobile_house_arrest[2588] <Error>: Max open files: 78
这也与打开文件时的 I/O 异常有关。
我使用这个片段来找出泄漏的文件,看起来 iOS 在应用程序的整个生命周期中为列出的每种字体保留了打开的文件描述符UIAppFonts
。
File Descriptor 8 number 9 in use for: Fonts/ABeeZee-Regular.ttf
File Descriptor 9 number 10 in use for: Fonts/ABeeZee-Regular.ttf
File Descriptor 10 number 11 in use for: Fonts/ABeeZee-Italic.ttf
File Descriptor 11 number 12 in use for: Fonts/ABeeZee-Italic.ttf
File Descriptor 12 number 13 in use for: Fonts/AmaticSC-Regular.ttf
File Descriptor 13 number 14 in use for: Fonts/AmaticSC-Regular.ttf
File Descriptor 14 number 15 in use for: Fonts/AmaticSC-Bold.ttf
File Descriptor 15 number 16 in use for: Fonts/AmaticSC-Bold.ttf
File Descriptor 16 number 17 in use for: Fonts/AnonymousPro-Bold.ttf
File Descriptor 17 number 18 in use for: Fonts/AnonymousPro-Bold.ttf
File Descriptor 18 number 19 in use for: Fonts/AnonymousPro-Regular.ttf
File Descriptor 19 number 20 in use for: Fonts/AnonymousPro-Regular.ttf
对我们来说,这意味着大约有一百个打开的文件描述符,尽管UIAppFonts
目前使用的不超过五个。有时,会出现重复的条目。
UIAppFonts
是否有强制关闭我目前不使用的文件描述符?
如果没有,是否有另一种方法可以保持本地字体可用,UIWebView
而无需求助于@font-face
哪种方法很慢?