我的问题是我有4个空数组:
Toast.makeText(getBaseContext(),"MESSAGE", Toast.LENGTH_LONG).show()
在课程var Names:[String] = []
var Amounts:[Int] = []
var Dates:[NSDate] = []
var Images:[UIImage] = []
内。
我在NewPersonViewController
内也有一个函数:
NewPersonViewController
按下按钮时,我会调用func create(){
Names.append(nameField.text)
Amounts.append(amountField.text.toInt()!)
Dates.append(dateToBePaid.date)
}
。该函数只是一个按钮动作,在create()
内声明。
我的问题:当我在不包括NewPersonViewController
的另一个类(在另一个文件中)打印出数组时,我得到了这个:
Images
是的,这就是我的输出。先感谢您。旁注:我是swift的新手:)
答案 0 :(得分:1)
除非您刚刚发布了一些玩具代码,否则您的设计似乎存在很多问题。
但是,您可能遇到的具体问题是,在Swift中,数组是" value types"。基本上它意味着如果你传递一个数组,Swift实际上每次都会复制。因此,如果您在另一个类中编辑副本2,它不会影响原始类中的副本1。
如果你只是想让你的代码工作而不重构来处理这个问题(你应该真的重构),最简单的方法是使用NSMutableArray而不是Swift数组。 NSMutableArray是一个类,它是一个"引用类型"。您可以传递它,进行更改,并从任何地方使用它。因为你实际上只传递了一个"引用",所以只有一个数组,你所做的改变到处都是。
答案 1 :(得分:0)
我在这里比较新,但如果你将数组移出ViewController,它们将成为GLOBAL变量,并可在任何其他View或Table Controller中访问。我刚尝试过,它工作得很好。
对于全局变量,我总是添加一个前缀“gl_”,所以我知道这是一个全局变量,这意味着它们需要小心使用。一般而言,全球变量存在风险,应该节约使用恕我直言,并考虑使用它们带来的任何风险......尤其是安全风险。
在我的ViewController.swift文件中:
date number type sort
2012-03-23 3660 d 1
2015-06-01 1890 k 2
2015-06-02 8370 k 3
2015-06-11 4345 k 4
2015-06-11 4345 k 5
2015-06-11 4345 k 6
2015-06-11 4345 k 7
2015-06-11 4345 k 8
2015-06-11 4345 k 9
2015-06-11 3534 k 4
2015-06-11 3534 k 5