为什么NSCell会弃用,为什么它首先被引入?

Eth*_*han 8 macos appkit

适用于OS X v10.10AppKit发行说明的"NSCell逐渐弃用"部分说:

Mac OS X 10.10向最终弃用单元格迈出了一步.

我听说这NSCell是出于性能原因而引入的.但那么为什么它会弃用?

Rob*_*ier 11

NSCell由于性能原因在NeXTSTEP时代推出了具有几兆内存的机器,当NSView每个表格单元都有一个完整的奢侈品时.在iOS中,通过使用视图而不是单元格大大简化了表视图.在OS X 10.7中,Apple开始向同一个方向移动OS X,我们终于到了那里.

NSCell向来对OS X的一大麻烦,而不是其中最重要的,因为它使用NSCopyObject(),旁边写过最讨厌的功能之一.它还提供了一个文本编辑器(NSText),它在所有文本输入视图之间共享.如果您不小心,当视图通过此共享对象相互干扰时,这可能会导致混淆错误.控件和单元之间的分离和重复一直是OS X开发人员之间混淆的根源.

曾几何时,它是必要的,但那些日子早已过去.在大多数情况下,我们不再需要担心"完整NSView子类的开销".特别是因为添加CALayer它使它们绘制得更快.