2015-06-09 18 views
11

Ich habe eine UIVC laden von einem Storyboard, die wiederum lädt ein Xib. Diese innere Last bewirkt, dass der VC mehr als eine Sekunde zum Laden benötigt. In der inneren Xib gibt es einige ausgefallene Fußarbeit (es lädt eine andere Xib, die dynamische Zeichnung hat), aber dies scheint nicht der Flaschenhals zu sein.Xib nimmt lange Zeit (> 1s) zu laden. UIFont-Cache scheint zu beschuldigen

Laut Instrumenten ist UIFont -initWithCoder der Schuldige. (Wenn Sie weiter Drilldown TBaseFont::CopyLocalizedName() ist der tiefste Eintrag, der für die Mehrheit der 1s Zeit ausmacht)

Ich bin ein wenig ratlos, da die benutzerdefinierte Schriftart, die ich verwende auftritt alle in der App ohne Probleme. Irgendwelche Ideen?

Screenshot from Instruments

Antwort

7

Ok das Problem war, dass die benutzerdefinierte Schriftart wurde keine eingebetteten mehr in der App. Ich war zu einem anderen ähnlichen gewechselt, der gleich aussah. Seltsam, obwohl ich erwartet hätte, dass diese beleidigenden Etiketten die Systemschrift auf dem Gerät wiederherstellen würden, aber das taten sie nicht. Ist es möglich, dass sie aus dem Macbook gezogen wurden?

+0

Dies war ein Live-Saver für mich! tnx :) – Vinchenzo

1

Hatte das ähnliche Problem - in meinem Fall ein anderer Entwickler im Team verwenden Sie einfach eine weitere Schriftart, so nach Merge-System kann nicht herausfinden, Schriftart und ändern sie für den Standard - es dauert von 1200ms bis 2300ms.

Lösung - Re-Setup alle Schriften auf ViewController, die einige Einfrieren verursachen.

2

Ähnliche Ausgabe hier - Hari und GBK wies mich auf die richtige Richtung.

Ich fand, dass wir Lucida Grande in einem kleinen versteckten Platz verwendeten (danke grep), aber Lucida Grande ist NOT embedded in iOS. Ich habe gerade Lucida Grande durch Helvetica Neue ersetzt und ich habe beim Start mehr als 3 Sekunden gewonnen. Beeindruckend.