0

Core Text が への呼び出しに応答してテキストのサイズを計算しているときに、すべてがトリガーされるように見える、いくつかの異なるクラッシュ レポートが届くのを見てきました[UIView sizeThatFits]。クラッシュにはいくつかの共通の原因があると思われますが、スタック トレースがいくつかしかなく、自分で問題を再現する方法がわからないため、どのような問題がクラッシュを引き起こしているのかを推測することになります。

あるケースでは、クラッシュが発生してABPeoplePickerNavigationControllerおり、スタック上のコードは完全に Apple コードです。コードを監査して、UIKit/Core Text がメイン スレッドからのみ使用されていることを確認しました。

バズタッチ フォーラムに投稿されたこの興味をそそるスタック トレースを見ました。これは非常によく似ており、「連絡先」トリガーも共有しています。

frame #0: 0x007fe283 CoreText`TComponentFont::GetMinSideBearing(CGAffineTransform const&, bool) const + 43 
frame #1: 0x0076b244 CoreText`TRun::GetLeftHangersGlyphCountAndWidth(long, unsigned long, TCharStream const&) const + 524 
frame #2: 0x0077e7da CoreText`TLine::GetLeftHangersGlyphCountAndWidth(unsigned long const*) const + 234 
frame #3: 0x0077e4b9 CoreText`TLine::GetBounds(unsigned long) const + 811 
frame #4: 0x0077ace6 CoreText`CTLineGetBoundsWithOptions + 44 
frame #5: 0x02059497 UIKit`-[UITableViewIndex _cacheAndMeasureTitles] + 984 
frame #6: 0x02059ace UIKit`-[UITableViewIndex sizeThatFits:] + 131

フォーラムでは、Ofer という名前の誰かが、クラッシュが修正されたという投稿を残しました。クラッシュを引き起こすために彼らが何をしていたのかを発見したことについて、Offer が親切にも詳細を共有してくれることを願っています!

4

1 に答える 1

0

私の場合、問題は彼の「既知の問題」で説明されているように、 FontAwesomeKitライブラリを使用してアイコンをロードしていた方法に起因しているようです。幸運なことに、アプリをかなり定期的に問題を再現できる状態にすることができました。提案された回避策を適用すると、問題が解消されました (もちろん、隠れている可能性があることはわかっています)。

于 2014-06-23T18:49:58.433 に答える