我在后台线程上调用sizeWithFont,这个sizeWithFont位于drawRect上,后台线程在NSOperationQueue上调用该drawRect。我偶尔会在sizeWithFont上发生随机崩溃。我一直在google搜索,似乎有人说这是苹果的问题。那么解决这个问题的更好方法是什么?使用NSOperationQueue在后台线程和sizeWithFont中执行drawRect崩溃应用程序
它在文档中表示,以下为iOS 4的的:
绘制在UIKit的图形上下文现在是线程安全的。 具体而言:用于访问和操作图形 上下文的例程现在可以正确处理驻留在不同 线程上的上下文。字符串和图像绘制现在是线程安全的。在多线程中使用颜色和字体对象现在可以安全地使用。
我有这样的事情:
titleSize = [storyTitleString sizeWithFont:[UIFont fontWithName:kProximaNovaBold size:15] constrainedToSize:CGSizeMake(200, kCellMaximumTitleHeight) lineBreakMode:UILineBreakModeWordWrap];
在我的drawRect。你可以用任何你想要的字符串替换storyTitleString。并且我还使用this库在后台线程中执行绘图。
截至iOS 4 UIKit是thredsafe,可以在这里看到http://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniOS/Articles/iPhoneOS4.html – adit 2013-02-19 22:30:40
正确但不是全部,基本上你可以在背景上绘制上下文,特别是绘制字符串,但正如你所看到的,并非所有的东西在苹果文档中都是100%真的:)你能发布更多的代码,以便我可以尝试测试和帮助吗? – 2013-02-19 23:01:53
我在帖子 – adit 2013-02-19 23:16:37