所以我对编程很新,我有2个课程
在viewcontroller上我有var mazeGame:Maze = Maze()
在空白行的正上方我有一个错误“预期声明” 我下面的代码是我要解决的主要错误“'Maze'没有名为subcript的成员”
if (mazeGame[col][row].checkRoomNorthExit(row,col))
还有一种方法可以在swift中创建构造函数吗?这样我就可以在开始运行时自动调用一系列函数/方法来生成迷宫吗?
class Maze: NSObject {
var mazeFloor = Array<Array<Room>>()
var mazeSeed:UInt32 = 0
var mazeSizeRows:UInt32 = 20
var mazeSizeCol:UInt32 = 20
var mazeRowPosition:UInt32 = 0
var mazeColPosition:UInt32 = 0
var startRow:Int = 0
var startCol:Int = 0
var endRow:Int = 0
var endCol:Int = 0
override init(){
}
func checkRoomNorthExit(rowPos: Int, colPos: Int) -> Bool{
return mazeFloor[colPos][rowPos].getnorthExit()
}
}
在Room类中
class Room: NSObject {
//Used for the 4 sides of the room
var northExit = false
var westExit = false
var eastExit = false
var southExit = false
func getnorthExit() -> Bool {
return northExit
}
}
答案 0 :(得分:1)
显然mazeGame有一个没有实现下标的类型Maze,你不能像在if中一样用方括号访问它。
您应该按如下方式访问房间:
if (mazeGame.checkRoomNorthExit(row,col))
对于构造函数,您需要为您的类定义init方法。在Swift书中查看初始化的解释 - https://developer.apple.com/library/mac/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html