[英]'UITabBarDelegate' cannot be constructed because it has no accessible initializers
[英]Game Scene cannot be constructed because it has not accessible initializers
Xcode删除错误,我不知道如何解决。 也许有人可以帮我一个忙或一个很好的提示?
这是在我的游戏场景中运行的代码:
var currentLevel: Int = 1
var platforms: PlatformsNode!
var platformNode1: PlatformNode!
var platformNode2: PlatformNode!
var platformNode3: PlatformNode!
var platformArray = [SKNode]()
let passenger = SKSpriteNode(imageNamed: "passenger")
var passengerNumber:Int = 1
var startPlatform = [3, 3, 2, 1, 2]
var destinationPlatform = [1, 1, 3, 2, 1]
// Level selection
class func level(levelNum: Int) -> GameScene? {
let scene = GameScene(fileNamed: "Level\(levelNum)")! // <- compiler error
scene.currentLevel = levelNum
scene.scaleMode = .AspectFill
return scene
}
一旦我想用let passenger: PassengerNode!
替换let passenger = SKSpriteNode(imageNamed: "passenger")
let passenger: PassengerNode!
编译器将抛出编译器错误“由于无法访问初始化程序,因此无法构建游戏场景”。 当我更改要声明让乘客的方式时,就会显示此错误。 我要更改它的原因是,我想将其替换为一个类,以便乘客a。 可以具有不同的类型和不同的纹理(可以用不同的方法解决)b。 可以从父级中删除,然后再次添加-希望没有错误。
你有什么主意吗? 我真的被某种方式卡住了:-?
如果只声明其类型而没有初始值的乘客,则需要在类中添加init(),因为编译器不知道在创建对象时要赋予其初始值。
您可以创建一个init()并将值设置为passenger或将其删除为
let passenger: PassengerNode! = nil
(这假设您的代码在确保将其放入变量之前未引用该变量,或者在使用它之前检查nil / optional)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.