我在后台线程上调用 sizeWithFont,这个 sizeWithFont 位于 drawRect 上,它在后台线程上的 NSOperationQueue 上调用。我偶尔会在 sizeWithFont 上发生随机崩溃。我一直在谷歌搜索,似乎有人说这是苹果的问题。那么有什么更好的方法来解决这个问题呢?
从 iOS 4 开始,以下文档中说:
在 UIKit 中绘制到图形上下文现在是线程安全的。具体来说:用于访问和操作图形上下文的例程现在可以正确处理驻留在不同线程上的上下文。字符串和图像绘制现在是线程安全的。现在可以安全地在多个线程中使用颜色和字体对象。
我有这样的事情:
titleSize = [storyTitleString sizeWithFont:[UIFont fontWithName:kProximaNovaBold size:15] constrainedToSize:CGSizeMake(200, kCellMaximumTitleHeight) lineBreakMode:UILineBreakModeWordWrap];
在我的drawRect中。你可以用你想要的任何字符串替换storyTitleString。而且我还使用这个库在后台线程中执行绘图。