【发布时间】:2018-08-17 00:47:34
【问题描述】:
我在使用 append 时遇到了一个问题,看起来很简单但我找不到解释,我创建了一个简单的示例来简单地解释事情。 我声明了一个名为 Customer 的类,如下所示:
class Customer {
var id: Int = 0
var name: String = ""
var latitude: Double = 0
var longitud: Double = 0
var image: UIImage = #imageLiteral(resourceName: "restaurantImage")
}
我初始化了一个空数组(暂时是全局的)
var customerList = [Customer]()
然后我有一个这样的函数:
func createCustomerList () {
let customer = Customer()
customer.id = 1
customer.name = "Restaurant 1"
customer.latitude = 0.13
customer.longitud = 0.14
customer.image = #imageLiteral(resourceName: "restaurantImage1")
customerList.append(customer)
customer.id = 2
customer.name = "Restaurant 2"
customer.latitude = 0.15
customer.longitud = 0.16
customer.image = #imageLiteral(resourceName: "restaurantImage2")
customerList.append(customer)
}
我正在尝试使用相同的常量在“customerList”数组中创建两个不同的元素。 当我检查数组时,它包含两个元素,但两个元素是相同的(最新的),如果我做了 10 次并且如果我将“客户”元素声明为 var,就会发生这种情况。 谁能帮帮我....?
这是一个愚蠢的代码,但可以帮助我解决项目中的一个实际问题...
【问题讨论】:
-
您需要创建 Customer 类的第二个实例
-
类是引用类型。这意味着当您在第一次推送
customer后更改它时,实际上您只是更改了同一个,然后添加了第二个引用。 -
谢谢你们!!
标签: swift