什么是可以同时绘制界面构建器?

RLT*_*RLT 12 macos xcode cocoa objective-c interface-builder

我从未使用过可以在iterface builder中提到的并发选项.见下图:

在此输入图像描述

有人可以解释一下它的用途和用途吗?

jus*_*tin 17

您可以使用它来通知AppKit您的NSView子类' -drawRect:实例方法可以从辅助线程调用.

它是10.6+.当/如果AppKit异步呈现视图时,-drawRect:使用并发块执行,您-drawRect:将从辅助线程调用.这意味着您的子类的实现必须是线程安全的(为了兼容性,默认情况下禁用它).

另请参阅-[NSView setCanDrawConcurrently:]详细信息,因为实际启用此行为所需的内容很少.同样,它并不意味着AppKit是线程安全的,或者它的NSView子类旨在支持这种功能 - 它专为您的重绘图而设计.

  • 请注意,从OS X 10.8和iOS 6.0开始,在视图层上设置新的"drawAsynchronously"属性可以提供足够的性能,而不会使`drawRect:`线程安全复杂化.在OS X上,您需要使用图层支持的视图来使用`drawAsynchronously`. (2认同)