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

所以我对编程相当陌生,我有两门课

  • 房间
  • 迷宫(2d阵列)
  • 在viewcontroller上,我有
    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))