为什么我不能使用 "helper" 变量更新数组中的对象?

Why Can't I Update an Object in Array using a "helper" Variable?

出于好奇,我问这个是为了理解 Swift。

我正在尝试更新位于另一个 class 中的数组中的对象。

我有两种情况(一种有效,另一种无效)

  1. 工作解决方案:
    Data.tripModels[0].title = "lol"
  1. 不工作:
    var trip = Data.tripModels[0]
    trip.title = "lol"

帮助您理解:

    Data = the other class
    tripModels = the array in Data class, holding the objects
    title = a property of tripModel in tripModels array

为什么 2. 不起作用? :(

2. 不起作用,因为由于值语义(tripmodel 的类型是一个结构)行

var trip = Data.tripModels[0] 

将数组中项目的 copy 分配给 trip

trip.title = "lol"

更新副本但不更新数组中的项目。

请阅读 Swift 语言指南中的 Structures and Enumerations are Value Types