2014-10-09 46 views
1

我在使用Swift的Xcode 6中遇到了一些编译器错误,我很难将其包裹起来。我试图通过继承SCNScene来创建一个场景,但不断在初始化程序上收到错误。我的代码的基本结构是:在Swift中继承SCNScene - 覆盖初始值

class SpaceScene: SCNScene { 
    override init(named: String) { 
     super.init(named: named) 
    } 
} 

这导致与所述消息行2中的错误“初始化器不会从它的超覆盖一个指定初始化”,虽然SCNScene显然具有这样的初始化剂。我想我错过了一些基本的东西 - 有什么见解?

+0

也许你忘了超越其他指定的初始化程序(如'的initWithCoder:'因为它符合'NSSecureCoding') – mnuages 2014-10-09 22:51:45

+0

的init(命名为:字符串)是一种方便的方法,不能用这种方式覆盖 – Knight0fDragon 2015-12-01 17:33:56

回答

1

XCode 6.1,下面应该这样做:

class SpaceScene : SCNScene { 

override init() { 
    super.init() 
} 

required init(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 
} 
} 
+0

对于像我这样仍然在寻找一个为子类提供带有命名参数的init的应用程序,在应用此解决方案之后不需要。方便的构造函数在所有指定的构造函数都可用时自动生成[link](https://developer.apple.com/library/ios/documentation/swift/conceptual/Swift_Programming_Language/Initialization.html),角色2。 – ByteArtisan 2014-11-10 21:31:13