我們將很多字體與我們的iOS應用程序捆綁在一起,我們將它們全部放在UIAppFonts
中,以加快載入速度。
(我們在UIWebView
之內使用它們,它的比使用@font-face
加載文件要快得多)。我可以關閉當前未使用的UIAppFonts的文件描述符嗎?
然而,這導致我偶爾會得到這樣的警告:
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異常相關。
我用this snippet找出泄漏的文件,它看起來像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
這很慢?
現在在帶有120多種自定義字體的應用程序中遇到此問題。不使用UIWebView,只是自定義的UILabels ...猜猜是時候減少字體列表... – 2014-07-11 11:42:08
@Brad:我認爲這種方法也適用於UILabels。 (除非您需要一次顯示所有120個以上) – 2014-07-11 12:20:21