2015-03-30 2 views
2

У меня странная проблема с конфликтующими компиляторами, из-за UIFontsystemFontOfSize:weight, который предположительно доступен только для iOS 8.2.Почему UIFont systemFontOfSize: вес не падает на iOS 8.0?

Локально я могу скомпилировать проект, который использует эту функцию на iPhone 6 под управлением iOS 8.0, и он отлично работает. Я также могу скомпилировать 8.1 симулятор с правильными результатами, включая взвешивание.

Проблема в том, что мы используем Team City, и линия не будет компилироваться на сервере с использованием iOS 8.0 SDK. Я знаю, что решение состоит в том, чтобы удалить строку, но я хотел бы узнать, почему она не ломает ошибку во время локального компиляции ... Была ли функция доступна до iOS 8.2, но как частный API?

ответ

8

Этот метод доступен с iOS 8.0. Apple просто раскрыла этот метод как открытый API в 8.2. Вы можете проверить старые заголовки времени выполнения в iOS 8.0.

На iOS 7.0 этот метод не поддерживается, а константы UIFontWeight* не существуют, и ваше приложение будет аварийно завершено.

+0

См. Здесь для подтверждения: https://github.com/nst/iOS-Runtime-Headers/blob/8.0/PrivateFrameworks/UIFoundation.framework/UIFont.h#L95 – teichmann