Xcode 6.3&;快速错误:Objective-C方法';初始';由隐式初始值设定项定义';init()';在这里

Xcode 6.3&;快速错误:Objective-C方法';初始';由隐式初始值设定项定义';init()';在这里,xcode,swift,Xcode,Swift,我刚刚更新到Xcode 6.3测试版。它支持Swift 1.2,因此它使我的项目出现许多错误。虽然我使用了“转换为Swift 1.2”功能,但它不能清除所有错误。例如这个错误: import SpriteKit class Score: Shape { convenience init() { self.init(name:"Score",imageName:"score") self.physicsBody!.categoryBitMask = scor

我刚刚更新到Xcode 6.3测试版。它支持Swift 1.2,因此它使我的项目出现许多错误。虽然我使用了“转换为Swift 1.2”功能,但它不能清除所有错误。例如这个错误:

import SpriteKit
class Score: Shape {
    convenience init() {
        self.init(name:"Score",imageName:"score")
        self.physicsBody!.categoryBitMask = scoreCategory
        light.lightColor = SKColor.greenColor()
        light.categoryBitMask = scoreLightCategory
    }
}
Xcode显示第3行有错误:初始值设定项'init()'覆盖超类'SKSpriteNode'中的Objective-C方法'init';此处由隐式初始值设定项“init()”定义的Objective-C方法“init”

但如果我添加如下参数:

import SpriteKit

class Score: Shape {
    convenience init(args:Bool) {
        self.init(name:"Score",imageName:"score")
        self.physicsBody!.categoryBitMask = scoreCategory
        light.lightColor = SKColor.greenColor()
        light.categoryBitMask = scoreLightCategory
    }
}
但隐式初始值设定项“init()”定义的“Objective-C方法“init”是什么意思?我怎样才能优雅地解决这个问题

注:
Shape
类继承自
SKSpriteNode
类:

class Shape: SKSpriteNode {
    required init(coder: NSCoder) {
        fatalError("NSCoding not supported")
    }

    init(name:String,imageName:String){

        super.init(texture: SKTexture(imageNamed: imageName),color:SKColor.clearColor(), size: CGSizeMake(radius*2, radius*2))
        self.name = name
    } 
}

这在Xcode 6.3 beta 2中得到了解决。清理生成文件夹并重新生成后,它将正常运行

我已经删除了我的答案。我希望其他人能帮助您。与Objective-C中的子类不同,Swift子类默认情况下不会继承它们的超类初始值设定项。因此,在Objc中,
init()
SKSpriteNode
的指定初始值设定项,但在Swift中不是。我认为这个问题打破了Objc和Swift之间的桥梁。