这发生在XCode6-Beta5的操场上
我正在尝试在子类SKSpriteNode
中向Sprite
添加一些功能,但我仍然想在SKSpriteNode
中使用便捷初始值设定项。但是,我收到以下错误:
"Cannot convert the expression's type 'Sprite' to type 'Sprite'"
来自此代码:
import Cocoa
import SpriteKit
class Sprite : SKSpriteNode {
// The following code makes this not compile
// required init(coder aDecoder: NSCoder!) {
// super.init(coder: aDecoder)
// }
}
var sprite = Sprite(imageNamed: "Rayman1.png") // Error occurs on this line
有问题的便利初始化程序声明如下:
convenience init(imageNamed name: String!)
我做错了什么?
答案 0 :(得分:0)
初始化程序链接规则,内容如下:
指定的初始值设定项必须从它们的直接超类中调用指定的初始化程序。
如果你在子类实例化中调用超类的方便初始化,则不允许这样做。
希望这会有所帮助.. :)
答案 1 :(得分:0)
我不得不摆脱init(coder aDecoder: NSCoder!)
方法,并修复了一切。我不明白为什么。