UIFont поток безопасен? - PullRequest
       3

UIFont поток безопасен?

2 голосов
/ 22 марта 2012

Кто-нибудь может подтвердить, является ли UIFont (из Cocoa-Touch / iOS) поточно-ориентированным? То есть безопасно ли использовать потоки, находящиеся вне основного потока, но экземпляр не является общим для потоков?

Проблема в том, что я делаю это и получаю случайные сбои в [NSString sizeWithFont:] и начинаю думать, что, возможно, мне не следует использовать UIFont вне основного цикла выполнения?

Более того Документация Apple по UIFont заставляет меня сомневаться, можно ли ее использовать из других потоков.

Вы не создаете объекты UIFont, используя методы alloc и init. Вместо этого вы используете методы класса UIFont для поиска и получения нужного объекта шрифта.

Вышеупомянутая реклама звучит так, как если бы UIFont где-то хранил кэш экземпляра, и поэтому нецелесообразно использовать объекты UIFont вне основного потока, поскольку экземпляр может случайно использоваться несколькими потоками и может привести к проблемы. Черт, UIFont экземплярный кеш может даже стать источником конфликта потоков.

Кто-нибудь может пролить свет (с соответствующими ссылками / доказательствами) на это?

Спасибо

1 Ответ

2 голосов
/ 22 марта 2012

Рокьярк прав.Если вы хотите изменить шрифт элементов пользовательского интерфейса, например, свойство font объекта UILabel , это следует сделать в главном потоке .

* 1008.* Но если вы хотите создать экземпляр UIFont в отдельном потоке, вы можете это сделать.В документации Apple говорится, что UIFont предлагает вам только статические методы.
...