2014-10-09 84 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