2014-02-10 2 views
0

Я видел несколько разных отчетов о сбоях, которые появляются, поскольку все они запускаются, когда Core Text вычисляет размер некоторого текста в ответ на вызов [UIView sizeThatFits]. Я подозреваю, что сбой имеет общую причину, но у меня есть только несколько следов стека, и я не знаю, как воспроизвести какие-либо проблемы самостоятельно, поэтому я догадываюсь, какие проблемы могут вызвать сбой.Какие проблемы вызывают сбои Core Text при вызовах `sizeThatFits`?

В одном случае авария происходит в ABPeoplePickerNavigationController, а код в стеке - полностью код Apple. Я проверил свой код, чтобы убедиться, что UIKit/Core Text используются только из основного потока.

Я увидел это tantalizing stack trace, размещенное на форуме buzztouch, который выглядит очень похожим, а также делится триггером «контакты».

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 

На форуме кто-то по имени Офер оставил сообщение о том, что авария была исправлена. Я надеюсь, что Офер может быть достаточно любезен, чтобы поделиться некоторыми подробностями о том, что они обнаружили, что они делали, чтобы вызвать крах!

ответ

0

В моем случае проблема, похоже, связана с тем, как я загружал значки, используя библиотеку FontAwesomeKit, как описано в его «Known Issues». Мне повезло, что мое приложение попало в состояние, в котором я мог бы регулярно воспроизводить проблему, и, применяя предложенное решение, проблема исчезла (конечно, для всех, кого я знаю, это может просто скрыться).

Смежные вопросы