Iphone 使用NSOperationQueue应用程序在后台线程和sizeWithFont中执行drawRect
我在后台线程上调用sizeWithFont,此sizeWithFont位于drawRect上,它在后台线程的NSOperationQueue上调用。我偶尔会在sizeWithFont上发生随机崩溃。我一直在谷歌上搜索,似乎有人说这是苹果的问题。那么,有什么更好的方法来解决这个问题呢 从iOS 4开始,文件中说: 在UIKit中绘制图形上下文现在是线程安全的。 具体来说:用于访问和操作图形的例程 上下文现在可以正确处理驻留在不同服务器上的上下文 线程。字符串和图像绘图现在是线程安全的。使用颜色和颜色 多线程中的字体对象现在是安全的 我有这样的想法:Iphone 使用NSOperationQueue应用程序在后台线程和sizeWithFont中执行drawRect,iphone,ios,objective-c,ipad,Iphone,Ios,Objective C,Ipad,我在后台线程上调用sizeWithFont,此sizeWithFont位于drawRect上,它在后台线程的NSOperationQueue上调用。我偶尔会在sizeWithFont上发生随机崩溃。我一直在谷歌上搜索,似乎有人说这是苹果的问题。那么,有什么更好的方法来解决这个问题呢 从iOS 4开始,文件中说: 在UIKit中绘制图形上下文现在是线程安全的。 具体来说:用于访问和操作图形的例程 上下文现在可以正确处理驻留在不同服务器上的上下文 线程。字符串和图像绘图现在是线程安全的。使用颜色和颜
titleSize = [storyTitleString sizeWithFont:[UIFont fontWithName:kProximaNovaBold size:15] constrainedToSize:CGSizeMake(200, kCellMaximumTitleHeight) lineBreakMode:UILineBreakModeWordWrap];
在我的抽屉里。您可以用任何字符串替换storyTitleString。我还使用库在后台线程中执行绘图。UIKit不是线程安全的,所以不能在后台线程上调用任何东西,它会导致间歇性错误。最好的选择是在主线程上开始操作之前从UIKit计算所需的所有内容,或者在操作运行期间切换到主线程,这取决于您试图完成的操作。UIKit不是线程安全的,因此您无法在后台线程上调用任何内容,它将导致间歇性错误。您最好的选择是在主线程上开始操作之前从UIKit计算所需的所有内容,或者在操作运行期间切换到主线程,这取决于您试图完成的任务。从iOS 4开始,UIKit是安全的,可以在此处看到,但不是全部,基本上,你可以在后台绘制上下文,尤其是绘制字符串,但正如你所看到的,在apple docs中并非所有内容都是100%真实的:你能发布更多代码以便我尝试测试和帮助吗?或者有没有更简单的方法来计算后台线程中字符串的大小而不使用SizeWithFont?你能给出完整的操作代码吗?没有你的业务相关的东西,只是上下文的设置,字符串的绘制,iOS 4 UIKit的ETCA是thredsafe,可以在这里看到,但不是全部,基本上你可以在背景上绘制上下文,特别是绘制字符串,但是正如你所看到的,在apple docs中并非所有内容都是100%真实的:你能发布更多的代码以便我尝试测试和帮助吗?或者有没有更简单的方法来计算后台线程中字符串的大小而不使用SizeWithFont?你能给出完整的操作代码吗?没有业务相关的东西,只是上下文的设置、字符串的绘制等等