在我的项目中使用NSWindow时,我通常指定realeaseWhenClosed选项,并在需要时重新加载它。我搜索了NSWindow内存选项,但找不到任何具体的选项,因此:
请有人向我解释一下NSWindow内存选项的不同之处:递延、one shot、buffered、retained、
发布于 2015-04-22 10:32:02
您应该始终使用缓冲,如这里所记录的,存储型缓冲窗口绘图,另外两个选项(保留和非保留),您也不应该像这里所说的那样使用。
缓冲窗口将所有绘图呈现到显示缓冲区中,然后将其刷新到屏幕上。 你应该使用这种模式。它支持硬件加速,石英绘图,并在可能时利用GPU。它还支持alpha通道绘图,不透明控制,使用排序器。
可在OSXv10.0及更高版本中使用。
延迟参数到initWithContentRect:styleMask:backing: defer :指定NSWindow是立即创建其窗口设备,还是仅在其在屏幕上移动时才创建。延迟创建窗口设备可以为没有立即显示的窗口提供一些性能改进,因为它减少了需要预先执行的工作量。当不能推迟创建NSWindow本身,或者除了显示内容之外,还需要NSWindow时,推迟窗口设备的创建特别有用。例如,具有键等效项的子菜单必须存在,才能使键等效项工作,但可能永远不会实际显示。 当窗口从屏幕上移除时,也可以通过销毁窗口设备来保存内存。setOneShot:方法控制此行为。只有当NSWindows出现在屏幕上时,才会出现一次窗口设备。这意味着当应用程序被隐藏,或者窗口被小型化时,备份存储也会被释放。
https://stackoverflow.com/questions/29793815
复制相似问题