Ios Swift阵列';对象';没有名为subscript的成员
所以我对编程相当陌生,我有两门课Ios Swift阵列';对象';没有名为subscript的成员,ios,arrays,swift,object,multidimensional-array,Ios,Arrays,Swift,Object,Multidimensional Array,所以我对编程相当陌生,我有两门课 房间 迷宫(2d阵列) 在viewcontroller上,我有var mazeGame:Maze=Maze() 就在它上面的一个空行上,我有一个错误“预期声明” 下面的代码是我要解决的主要错误“'Maze'没有名为subscript的成员” 还有一种方法可以在swift中创建构造函数吗?这样我就可以在开始运行迷宫时自动调用一系列函数/方法来生成迷宫 class Maze: NSObject { var mazeFloor = Array<Arra
var mazeGame:Maze=Maze()
就在它上面的一个空行上,我有一个错误“预期声明”
下面的代码是我要解决的主要错误“'Maze'没有名为subscript的成员”
还有一种方法可以在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()
}
}
很明显,mazeGame有一个类型迷宫,它没有实现下标,因此您不能像在if中那样通过方括号访问它 您应按以下方式访问房间:
if (mazeGame.checkRoomNorthExit(row,col))
对于构造函数,您需要为类定义init方法。查看Swift手册中关于初始化的解释-你能发布你对迷宫类的定义吗?如果你能发布整个代码,而不仅仅是其中的一行代码,这也会有所帮助。谢谢你需要把这段代码移到你原来的帖子里。这是一个注释中的太多代码,很难弄清楚实际发生了什么。我在我的帖子中添加了关于如何访问所需数组的更新。但我相信会有更多的错误需要解决。看起来这只是一个开始:)现在我只想把重点放在让它工作上,尝试更新你们需要帮助的任何东西:)当我尝试访问房间时,我收到一个错误,说“找不到成员‘checkRoomNorthExit’”。这意味着你们没有在房间类中定义方法checkRoomNorthExit。mazeFloor在最后返回房间,而不是迷宫。这种假设的预期逻辑是什么?很难从代码中猜出来。我对您试图实现的逻辑做了另一次猜测,做了另一次编辑:),但我需要您的建议,告诉我您试图用代码实现什么。我尝试创建的是一个使用视图控制器的2d迷宫游戏(尝试使用一个视图来实现它(将其用作C++中的主.cpp文件)我正在尝试使用这个方法来检查是否使用.hidden激活和停用视图上的按钮。因此,我使用此视图来跟踪用户/玩家在迷宫中的位置,并显示每个房间中可用的选项。还想知道,如果我现在这样做,它如何知道我正在尝试访问2d阵列中的哪个房间?
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
}
}
if (mazeGame.checkRoomNorthExit(row,col))