swift - 在 Swift 中初始化二维用户定义数组

标签 swift

我是 Swift 的新手,这个问题让我很困惑。我正在尝试创建一个二维 map 。在我的 Map 类的初始化中,我需要创建另一个名为 Grid 的类的二维数组。

这是我现在拥有的:

class Map: NSObject {
    var squares: [[Grid]]
    let MAXROWS = 200
    let MAXCOLUMNS = 200

    override init(){
         for r in 0...MAXROWS{
             for c in 0...MAXCOLUMNS{
                squares[r][c].append
            }
        }
    }

在追加函数中,它产生了一个错误:

value of type "Grid" has no member "append"

如何正确执行此操作?

最佳答案

或者如果你不喜欢原始循环:

override init(){
    self.squares = Array<[Grid]>(
        repeating: Array<Grid>(
            repeating: Grid(),
            count: MAXCOLUMNS),
        count: MAXROWS
    )
}

编辑:与 Alain T metnioned 一样,这仅在 Grid 是结构时有效,否则将在整个二维数组中使用相同的实例。这是因为类是通过引用传递的,在这种情况下,每次都会使用相同的引用。

关于swift - 在 Swift 中初始化二维用户定义数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54636466/

相关文章:

ios - 在 Swift 数组的最后一项之前添加单词 "and"

ios - 从自定义快捷操作中传递参数

ios - prefersLargeTtitles 加载WKWebView网页后自动折叠

ios - UIPageViewController 以编程方式进行中间转换?

swift - 更改属性其他功能

ios - drawRect 取决于 View -> 启动时自定义 View 使用错误的框架

ios - 如何使用 Swift 3 iOS 应用程序读取 plist

swift - 字符串插值。打印 String 数组的单个项目

ios - UIButton TapGestureRecognizer 未触发

ios - UITableViewAutomaticDimension 未按预期工作。 swift