OGeek|极客世界-中国程序员成长平台

标题: ios - UIFont 线程安全吗? [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 22:15
标题: ios - UIFont 线程安全吗?

任何人都可以确认 UIFont(Cocoa-Touch/iOS 的)是否是线程安全的?也就是说,在主线程之外的线程中使用它是否安全,但实例不在线程之间共享?

问题是我正在这样做,并且我在 [NSString sizeWithFont:] 中遇到随机崩溃,并开始认为也许我不应该使用 UIFont 从主运行循环之外?

此外Apple's documentation on UIFont让我怀疑它是否可以从其他线程中使用。

You do not create UIFont objects using the alloc and init methods. Instead, you use class methods of UIFont to look up and retrieve the desired font object.

上面的简介听起来像 UIFont 有一个实例缓存存储在某处,因此从主线程外部使用 UIFont 对象可能不是一个好主意,因为实例可能会无意中被多个线程使用并可能导致问题。见鬼,UIFontinstance cache 甚至可能是线程争用的来源。

任何人都可以对此有所了解(通过可归因的链接/证据)吗?

谢谢



Best Answer-推荐答案


rokjarc 是对的。如果你想改变 UI 元素的字体,例如 UILabel 对象的 font 属性,你应该在 主线程 中进行。 p>

但是如果你想在单独的线程中创建 UIFont 实例,你可以自由地去做。 Apple 文档说 UIFont 只为您提供静态方法。

关于ios - UIFont 线程安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9817240/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (http://ogeek.cn/) Powered by Discuz! X3.4