【问题标题】:Xcode 6.1 Swift issue - 'init()' is unavailable: superseded by import of -[NSObject init]Xcode 6.1 Swift 问题 - 'init()' 不可用:被 -[NSObject init] 的导入所取代
【发布时间】:2014-12-21 16:19:48
【问题描述】:

我刚刚将我的 Xcode 升级到 6.1,现在遇到一个奇怪的编译错误。

'init()' 不可用:被 -[NSObject init] 的导入取代

我是 SCNNode 的子类,并且有一个对我正在定义的相同类型的其他类的可选引用。即

import UIKit
import SceneKit

    class BayNode: SCNNode {

        var leftBay:BayNode?
        var rightBay:BayNode?


        func addLeftBay()
        {

            leftBay = BayNode()   // 'init()' is unavailable: superseded by import of -[NSObject init]

        }


    }

有谁知道我该如何解决这个问题。

非常感谢

【问题讨论】:

  • 无关:如果您遵循 Swift 命名约定,例如使用首字母大写的命名类型,它可以帮助其他人(包括 SO 的语法高亮器)阅读您的代码。也就是说,使用BayNode,而不是bayNode
  • 嗨 Rickster,我下次会做 ;-)。我在这里很新。

标签: swift ios8 scenekit xcode6.1


【解决方案1】:

我有同样的问题,我发现抑制错误的一种方法是显式转换它:

leftBay = BayNode() as BayNode

【讨论】:

  • 谢谢亚历克斯,我试过了,效果很好。它的性能与 Xcode 6.01 相同。有谁知道为什么,或者可以提供这种变化背后的解释?
  • 可能是类型检查中的错误。 File it with Apple 帮助更快地解决问题。
  • 这不是一个错误,这是语言中更严格的类型检查的结果。
  • 所以这确实是一个错误,它已在 Swift 1.2 (Xcode 6.3 beta 2) 中修复
  • @Alex-alex 我在 Swift 2.0 (Xcode 7) 中遇到了同样的错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 1970-01-01
  • 2015-03-07
  • 1970-01-01
  • 2018-05-17
相关资源
最近更新 更多