3

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ますか?

4

2 に答える 2

2

そうでない場合、遅い @font-face に頼ることなく、ローカル フォントを UIWebView で利用できるようにする別の方法はありますか?

結局のところ、あります。

CTFontManagerRegisterFontsForURLを使用してフォントを登録し、 で登録を解除することで問題を解決しましたCTFontManagerUnregisterFontsForURLUIWebViewで使用する前に常にフォントを登録することを考えると、これにより、それらを で使用できるようになりfont-familyます。

于 2013-04-15T15:50:23.723 に答える