Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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
Swift 在哪里转换数据,NSViewController还是NSArrayController?_Swift_Macos_Core Data_Nsarraycontroller_Nsviewcontroller - Fatal编程技术网

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
对象的地方

我的一些数据需要从price
Float
值转换为pixel
CGFloat
值。我正在做一些几何和数学来得到它


显然,
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
实例呢?通常视图控制器拥有数组控制器。