有人可以确认UIFont (Cocoa/iOS)是否线程安全?也就是说,在主线程之外但实例不在线程之间共享的线程中使用安全吗?
问题是,我正在这样做,并且在[NSString sizeWithFont:]中随机崩溃,并开始想,也许我不应该在主运行循环之外使用UIFont?
此外,Apple's documentation on UIFont使我怀疑它是否可以从其他线程中使用。
不使用alloc和init方法创建UIFont对象。相反,您可以使用UIFont的类方法来查找和检索所需的字体对象。
上面的blurb听起来像是UIFont有一个实例缓存存储在某个地方,因此从主线程外部使用UIFont对象可能不是一个好主意,因为一个实例可能被多个线程无意中使用,并可能导致问题。见鬼,UIFont的实例缓存甚至可能是线程争用的来源。
有人能对此(有可归因的链接/证据)有所了解吗?
谢谢
发布于 2012-03-22 09:52:09
罗卡弧是对的。如果要更改UI元素的字体(例如,UILabel对象的UILabel属性),则应在主线程中进行更改。
但是,如果您想要在单独的线程中创建UIFont实例,您可以自由地这样做。苹果的文档说,UIFont只为您提供静态方法。
https://stackoverflow.com/questions/9817240
复制相似问题