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
私たちにとっては、約 100 の開いているファイル記述子を意味しますがUIAppFonts
、現在使用されているのは 5 つ以下です。重複したエントリが表示されることがあります。
UIAppFonts
現在使用していないファイル記述子を強制的に閉じる方法はありますか?
UIWebView
そうでない場合、ローカル フォントを利用できるようにしておく別の方法はあり@font-face
ますか?