每次我按下按钮时,我都试图将新数字附加到数组的末尾。我已经尝试了很多不同的方法,但是我做不到。
我尝试了追加,插入,创建空数组等等。
import UIKit
import Foundation
var num1 = 0
class ViewController: UIViewController {
@IBAction func button(_ sender: UIButton) {
var digitCounts = Array(repeating: 0, count: 10)
var number_list = [1,2,3]
if num1 >= 0 {
digitCounts.insert(3, at: num1)
print(digitCounts)
number_list.append(num1)
num1 += 1
print(num1)
print(number_list)
}
}
结果看起来像
在第一次按下按钮[1,2,3,4]之后启动数组[1,2,3] 第三次按下按钮后[1,2,3,4,5] [1,2,3,4,5,6]
答案 0 :(得分:0)
首先,您应将var number_list
声明为ViewController
的属性:
class ViewController: UIViewController {
var number_list = [1,2,3]
}
否则,每次调用var number_list
时都会创建默认值button(_ sender:)
。
并对按钮使用以下处理程序:
@IBAction func button(_ sender: UIButton) {
number_list += number_list.last.flatMap { [$0+1] } ?? []
print(number_list)
}
答案 1 :(得分:0)
好,现在您已经显示了完整的代码,我可以看到问题所在。每次单击按钮都在创建新的数组,但是在此函数之外存储了num1
。
尝试一下:
import UIKit
import Foundation
class ViewController: UIViewController {
var num1 = 0
var digitCounts = Array(repeating: 0, count: 10)
var number_list = [1,2,3]
@IBAction func button(_ sender: UIButton) {
if num1 >= 0 {
digitCounts.insert(3, at: num1)
print(digitCounts)
number_list.append(num1)
num1 += 1
print(num1)
print(number_list)
}
}
通过将数组存储为类的属性,而不是将其存储在函数中,它们将通过多次单击而保持不变
答案 2 :(得分:0)
您必须将数组设置为全局并进行如下更改
import UIKit
import Foundation
var num1 = 0
class ViewController: UIViewController {
var number_list = [1,2,3]
@IBAction func button(_ sender: UIButton) {
var number = number_list.last ?? 0
number += 1
number_list.append(number)
print(number_list)
}
}
答案 3 :(得分:0)
如果您不是多线程的,一个简单的解决方案是记住最后一个数字,而不必检查数组中的最后一个元素:
class ViewController: UIViewController {
var number_list = [1, 2, 3]
var num1 = 3
@IBAction func button(_ sender: UIButton) {
number += 1
number_list.append(number)
print(number_list)
}
}