当我在我的数组上使用追加操作时,所有元素都变为具有相同的值

时间:2015-04-09 05:26:35

标签: arrays swift append

我有课程顺序:

class Order {
var type_id = ""
var model_id = ""
var hourly = serviceByHours()
var transfer = serviceByTransfer()
var custom = serviceByReis()
}

struct serviceByHours {
    var undefinedTime = "1"
    var addressOfRequest = ""
    var addressOfDelivery = ""
    var detailedText = ""
    var startofWork = ""
   var endOfWork = ""
}

struct serviceByTransfer {

   var addressOfRequest = ""
   var addressOfDelivery = ""
   var detailedText = ""
   var startofWork = ""
}

struct serviceByReis {

   var addressOfRequest = ""
   var addressOfDelivery = ""
   var detailedText = ""
   var startofWork = ""
   var priceProposed = ""
} 

我创建了这个类的实例并用值填充它。  在我创建Array: var singleOrderClass = Order();之后 具有订单类型的var arrayOfOrders = [Order]。 但是当我使用追加操作(arrayOfOrders.append(singleOrderClass))

我的所有元素都变得具有相同的价值。我不知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

我正在回答一个答案,因为我想为您的问题显示我输出的屏幕截图。我无法复制你所看到的。这个问题还有什么问题吗?

enter image description here

在你的(OP' s)评论之后,我通过以下捕获扩展了响应。一切都在发挥作用。由于数组是引用的集合,而不是数据的副本,因此您很可能以某种方式覆盖实例值。确保为附加到数组的每个元素实例化一个新的Order()类。不要简单地在append之间重用singleOrderClass而不先创建一个新的Order()对象。

enter image description here