Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.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
Objective c 什么是界面生成器?_Objective C_Xcode_Macos_Cocoa_Interface Builder - Fatal编程技术网

Objective c 什么是界面生成器?

Objective c 什么是界面生成器?,objective-c,xcode,macos,cocoa,interface-builder,Objective C,Xcode,Macos,Cocoa,Interface Builder,我从未使用过iterface builder中提到的“可以同时绘制”选项。见下图: 有人能解释一下它的用途吗?该选项用于支持螺纹绘图的视图,例如NSProgressIndicator。如果选中CanDraw Concurrent,则可以从该视图的后台线程调用drawRect。参考课堂参考。 您可以使用它通知AppKit您的NSView子类'-drawRect:实例方法可能会从辅助线程调用 是10.6+。当/如果AppKit异步呈现视图时,将使用并发块执行-drawRect:,并且将从辅助线程调

我从未使用过iterface builder中提到的“可以同时绘制”选项。见下图:


有人能解释一下它的用途吗?

该选项用于支持螺纹绘图的视图,例如
NSProgressIndicator
。如果选中CanDraw Concurrent,则可以从该视图的后台线程调用drawRect。参考课堂参考。

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

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


有关详细信息,请参见
-[NSView setcandraw::
,因为实际启用此行为所需的东西很少。此外,它不应该暗示AppKit是线程安全的,或者它的
NSView
子类是为支持此功能而设计的-它是为您的重绘图而设计的。

注意,从OS X 10.8和iOS 6.0开始,在视图层上同步设置新的
drawsa
属性可以提供足够的性能,而不会使
drawRect:
线程安全。在OSX上,您需要使用层备份视图来同步使用
drawsa
@robmayoff nice tip+1。你有没有偶然测量过这一点,或者遇到过一篇好的评论?我已经编写线程安全并发渲染器一段时间了。我想这是一个很多人都想避免的领域:)我没有玩过。《优化2D图形和动画性能》视频从31m24s左右开始讨论。