我在实现NSView
的{{1}}实现子类时遇到了问题。
NSCoding
和init(coder: NSCoder)
似乎NSView
的声明存在冲突。
NSCoding
现在说它可以使用,但是NSView
仍然说它是不可用的。
当我尝试覆盖NSCoding
并进行自定义初始化时,Xcode 6.1给出了一条错误消息:
不可用的初始化程序无法链接到可用的初始值设定项 'init(coder :)'用'init?'编写
我该怎么做自己的班级自定义初学者?
这是一个愚蠢的例子,我扩展了一个视图,我想为我的视图保留一个额外的点击计数器。
init(coder: NSCoder)
答案 0 :(得分:11)
您不必明确遵守NSCoding
,因为NSResponder
(NSView
的超类)已经符合它。
required init?(coder: NSCoder) {
super.init(coder: coder)
self.clickCounter = coder.decodeObjectForKey("clickCounter") as Int
}