gpt4 book ai didi

swift - 这是使用初始化的正确方法吗?

转载 作者:行者123 更新时间:2023-11-28 07:01:38 25 4
gpt4 key购买 nike

是的,所以我总是使用一个函数进行初始化,但我是这种快速初始化的新手,所以通过这种方式我正确地初始化了这个二维数组。

var board = [[UIButton]](){
init(array:UIButton){
board = [
[b0,b1,b2],
[b3,b4,b5],
[b6,b7,b8]

]
}
}

最佳答案

您的 board 变量必须使用按钮数组进行初始化,因此在包含您的板的类中,您指定一个 init(boardButtons:) 初始化程序来初始化board 变量:

class ClassThatContainsBoard {

var board: [[UIButton]]

init(boardButtons: [UIButton]) {
let b = boardButtons
board = [
[b[0], b[1], b[2]],
[b[3], b[4], b[5]],
[b[6], b[7], b[8]]
]
}
}

如果您的类本身知道面板应该包含哪些按钮,则您无需指定将按钮作为参数的初始化程序。变量可以采用闭包来将自身初始化为默认值:

class ClassThatContainsBoard {

var board: [[UIButton]] = {
var numRows = 3
var numCols = 3
var newBoard = [[UIButton]]()

for row in 0..<numRows {
var boardRow = [UIButton]()

for col in 0..<numCols {
let buttonNumber = (row + 1) * (col + 1)
let button = UIButton(type: .Custom)
button.setTitle("\(buttonNumber)", forState: .Normal)
boardRow.append(button)
}

newBoard.append(boardRow)
}

return newBoard
}()
}

所以上面,当ClassThatContainsBoard的实例被初始化时,闭包将被执行并返回board的默认值。在这里,它只是初始化为一个 3x3 的按钮阵列,每个按钮的标题都设置为板上的编号位置。

关于swift - 这是使用初始化的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31876982/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com