簡體   English   中英

Swift Array 'Object' 沒有名為下標的成員

[英]Swift Array 'Object' does not have member named subscript

所以我對編程很陌生,我有 2 個課程

  1. 房間
  2. 迷宮(二維數組)

var mazeGame:Maze = Maze()上,我有var mazeGame:Maze = Maze()

就在它上面的空行上我有一個錯誤“預期聲明”我下面的代碼是我要解決的主要錯誤“'迷宮'沒有名為下標的成員”

if (mazeGame[col][row].checkRoomNorthExit(row,col))

還有一種方法可以快速創建構造函數嗎? 只是這樣我就可以在開始運行時自動調用一系列函數/方法來生成迷宮嗎?

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
    }
}

顯然 mazeGame 有一個類型 Maze,它沒有實現下標,因此你不能像在 if 中那樣通過方括號訪問它。

您應該按以下方式訪問房間:

if (mazeGame.checkRoomNorthExit(row,col))

至於構造函數,您需要為您的類定義 init 方法。 查看 Swift 書中對初始化的解釋 - https://developer.apple.com/library/mac/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM