可用的och不可用的初始化器阻止我扩展NSView并实现NSCoding

时间:2014-10-28 10:29:16

标签: xcode macos cocoa swift nscoding

我在实现NSView的{​​{1}}实现子类时遇到了问题。

NSCodinginit(coder: NSCoder)似乎NSView的声明存在冲突。 NSCoding现在说它可以使用,但是NSView仍然说它是不可用的。

当我尝试覆盖NSCoding并进行自定义初始化时,Xcode 6.1给出了一条错误消息:

  

不可用的初始化程序无法链接到可用的初始值设定项   'init(coder :)'用'init?'编写

我该怎么做自己的班级自定义初学者?

这是一个愚蠢的例子,我扩展了一个视图,我想为我的视图保留一个额外的点击计数器。

init(coder: NSCoder)

enter image description here

1 个答案:

答案 0 :(得分:11)

您不必明确遵守NSCoding,因为NSResponderNSView的超类)已经符合它。

required init?(coder: NSCoder) {
    super.init(coder: coder)
    self.clickCounter = coder.decodeObjectForKey("clickCounter") as Int
}