arrays - Swift - 数组不会保存元素

标签 arrays swift

我正在使用函数通过 array.append() 将元素添加到数组。奇怪的是,数组不保存元素,在检查计数时,它会是空的。将相同的代码放入 Playground 时,它会正常工作。

第 1 类(功能是添加一个元素):

class FirstClass {
    var array:[(Int, Int, String)] = []

    func add(var1:Int, var2:Int, var3:String)
    {
        array.append((Int, Int, String)(var1, var2, var3))
        println(array.count)
    }
}

第 2 类(从我调用函数的地方):

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        FirstClass().add(1, 2, "xxx")
        FirstClass().add(2, 1, "xxx")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

我可以看到数组是空的,因为我总是在每次添加后打印计数。

有没有人遇到过类似的事情?

最佳答案

每次向数组添加一个元素时,都会创建一个 FirstClass 的实例,因此前一个元素会丢失。您应该只创建一个 FirstClass 的实例,并在其上调用 add 方法:

var firstClass = FirstClass()
firstClass.add(1, 2, "xxx")
firstClass.add(2, 1, "xxx")

如果你想让firstClass持久化在类实例中,将它声明为一个属性:

class ViewController: UIViewController {
    var firstClass = FirstClass()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.firstClass.add(1, 2, "xxx")
        self.firstClass.add(2, 1, "xxx")
    }

}

关于arrays - Swift - 数组不会保存元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26357703/

相关文章:

arrays - 将 numpy 数组中的 NaN 转换为大数(即 99999)

javascript - 如何将数组转换为对象数组

ios - Swift:奇怪的 XCode 行为在 NSArray 的子类中具有必需的初始化程序

arrays - 如何在 PostgreSQL 中循环二维数组

将整数和 float 的字符串转换为 C 中的 float 组

java - 如何在不加载额外代码的情况下在 ArrayList 中实现 Strings 和 SpannableStrings 的混合

ios - 查找当前位置与另一个位置之间的距离 (Swift 5)

ios - Swift:多点连接 + UI 更新

ios - 弹回 subview 可加快视频速度

swift 错误 : Realm accessed from incorrect thread