Xib prend beaucoup de time (> 1s) pour charger. UIFont cache semble être responsable

J'ai un chargement UIVC à partir d'un Storyboard qui, à son tour, charge un Xib. Cette charge interne amène le VC à prendre plus d'une seconde à charger. Il y a du jeu de jambes fantaisie dans le xib interne (il charge un autre xib qui a un dessin dynamic) mais cela ne semble pas être le goulot d'étranglement.

Selon Instruments, UIFont -initWithCoder est le coupable. (Si vous TBaseFont::CopyLocalizedName() plus loin TBaseFont::CopyLocalizedName() est l'input la plus profonde qui représente la majorité du time 1s)

Je suis un peu perplexe car la police personnalisée que j'utilise se produit tout au long de l'application sans aucun problème. Des idées?

Capture d'écran de Instruments

Ok, le problème était que la police personnalisée n'était plus embeddede dans l'application. Je suis passé à un autre similaire qui avait la même apparence. Bizarre cependant, car je m'attendais à ce que ces labels offensantes rétablissent la police système sur l'appareil, mais ils ne l'ont pas fait. Est-il possible qu'ils soient tirés du Macbook?

J'ai eu le même problème – dans mon cas, un autre dev de l'équipe utilise un type de police supplémentaire, donc après le système de fusion ne peut pas comprendre la police et le changer par défaut – il faut 1200ms à 2300ms.

Solution – ré-installer toutes les fonts sur ViewController qui causent un certain gel.

Question similaire ici – Hari et gbk m'ont laissé entrevoir la bonne direction.

J'ai trouvé que nous utilisions Lucida Grande dans un petit endroit caché (merci grep ), mais Lucida Grande n'est PAS embeddede dans iOS . Je viens de replace Lucida Grande par Helvetica Neue, et j'ai gagné 3+ secondes au moment du lancement. Impressionnant.