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

When I use append operation on my array all elements become to have the same value

我有class个订单:

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 = ""
} 

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

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

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

在您的(OP)评论之后,我用以下截图扩展了回复。一切正常。由于该数组是 references 的集合而不是数据的副本,因此您很可能会以某种方式覆盖实例值。确保为附加到数组的每个元素实例化一个新的 Order() class。不要在不首先创建新的 Order() 对象的情况下简单地在追加之间重用 singleOrderClass。