Swift 在哪里转换数据,NSViewController还是NSArrayController?
我对从核心数据到Swift 在哪里转换数据,NSViewController还是NSArrayController?,swift,macos,core-data,nsarraycontroller,nsviewcontroller,Swift,Macos,Core Data,Nsarraycontroller,Nsviewcontroller,我对从核心数据到NSView子类的数据转换发生在哪里感到困惑。 在阅读了苹果的文章后,他们似乎建议在NSArrayController中进行这种转换 但是,然后我阅读了他们的部分,在步骤10中,它暗示转换发生在NSViewController子类中 我还听说NSArrayController,或者NSController中的任何内容都不应该被子类化。但是,我从NSController中读到,每当你有不同形式的数据输出而不是进入NSView时,它的子类就意味着被子类化 那么,是哪一个 我的申请
NSView
子类的数据转换发生在哪里感到困惑。
在阅读了苹果的文章后,他们似乎建议在NSArrayController
中进行这种转换
但是,然后我阅读了他们的部分,在步骤10中,它暗示转换发生在NSViewController
子类中
我还听说NSArrayController
,或者NSController
中的任何内容都不应该被子类化。但是,我从NSController
中读到,每当你有不同形式的数据输出而不是进入NSView
时,它的子类就意味着被子类化
那么,是哪一个
我的申请
我设计了一个烛台图,它从一个自定义类Candle
中获取大量对象,以表示CAShapeLayer
和其他属性
对我来说,这是一个非常适合NSArrayController
管理所有特定烛台图形NSView
的Candle
对象的地方
我的一些数据需要从priceFloat
值转换为pixelCGFloat
值。我正在做一些几何和数学来得到它
显然,
NSArrayController
将处理Candle
对象,但是数据转换是否发生在NSViewController
或NSArrayController
中?“视图控制器绑定”是从视图到控制器的绑定,而不是NSViewController
(2003年不存在)。绑定可以有一个值转换器(NSValueTransformer的子类)来进行转换。@Willeke噢!因此,这意味着“步骤10”实际上不在NSView
中,而是在NSController
子类中,该子类具有绑定转换的NSValueTransformer
实例,对吗?因此,我将把ValueTransformer
作为子类(我想API已经更新了)。这意味着NSArrayController
仍然不应该被子类化,对吗?绑定有一个可选的值转换器(您可以在XIB/情节提要或代码中设置),这个值转换器转换值NSValueTransformer
在Swift中为ValueTransformer
NSArrayController
在这种情况下不应被子类化。@Willeke这更有意义。最后一个问题,您是否会实例化NSArrayController
?有人说它应该在NSViewController
子类中,但是NSView
子类是bind
方法所需要的。我还考虑过在NSWindowController子类中加入with,因为视图可以引用它的窗口。那么,核心数据bind
如何引用NSController
实例呢?通常视图控制器拥有数组控制器。