Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用NSOperationQueue应用程序在后台线程和sizeWithFont中执行drawRect_Iphone_Ios_Objective C_Ipad - Fatal编程技术网

Iphone 使用NSOperationQueue应用程序在后台线程和sizeWithFont中执行drawRect

Iphone 使用NSOperationQueue应用程序在后台线程和sizeWithFont中执行drawRect,iphone,ios,objective-c,ipad,Iphone,Ios,Objective C,Ipad,我在后台线程上调用sizeWithFont,此sizeWithFont位于drawRect上,它在后台线程的NSOperationQueue上调用。我偶尔会在sizeWithFont上发生随机崩溃。我一直在谷歌上搜索,似乎有人说这是苹果的问题。那么,有什么更好的方法来解决这个问题呢 从iOS 4开始,文件中说: 在UIKit中绘制图形上下文现在是线程安全的。 具体来说:用于访问和操作图形的例程 上下文现在可以正确处理驻留在不同服务器上的上下文 线程。字符串和图像绘图现在是线程安全的。使用颜色和颜

我在后台线程上调用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?你能给出完整的操作代码吗?没有业务相关的东西,只是上下文的设置、字符串的绘制等等