2014-01-31 4 views
0

CTFontManagerUnregisterGraphicsFont(cgFont, &fontError) вернулся верно, так что я ожидаю, что:CTFontManagerUnregisterGraphicsFont возвращает истину, но память не освобождается

  1. cgFont быть освобожден из памяти (Зарегистрированное шрифт японский шрифт более 5 Мб!)
  2. Вызов [UIFont fontWithName:postscriptName size:fontSize] впоследствии должен вернуться nil

Но cgFont ведет себя так, как будто это не было незарегистрировано.

Ожидается ли такое поведение? Спасибо за вашу помощь

ответ

0

Ваши ожидания не соответствуют моему пониманию документации. docs говорят, что «Зарегистрированные шрифты можно обнаружить через сопоставление дескрипторов шрифтов». «Незарегистрированные шрифты больше не могут быть обнаружены с помощью сопоставления дескрипторов шрифтов». Это все это значит.

Когда вы закончите с CGFont, вы должны позвонить CGFontRelease(). Вы должны только отменить регистрацию шрифта, если вы его также зарегистрировали.

+0

Спасибо. Уже называется CGFontRelease(). Но объект __bridge ARC не выпущен. В образце был издан код образца WWDC «CustumFonts». Около 2. возвращение не ноль. Но вернувшийся UIFont использовал сбой. Спасибо за консультацию! – gw2dev

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