我试图更新数组中对象的属性,但它不起作用。 我尝试替换数组中的整个对象,但它没有帮助
let object = myArray[0]
object.property = "new value"
myArray[0] = object
print(object.property) //"new value"
let sameObject = myArray[0]
print(sameObject.property) //"old value"
编辑: 我找到了!!!阵列是singelton属性。我正在调用MyClass()。myArray,而不是调用MyClass.sharedInstance.myArray
答案 0 :(得分:4)
这取决于它在数组中的含义。如果它是一个类,它将是对实例的引用。如果它是一个结构体,您将在分配时获得它的副本,从而导致您对未应用于该对象的副本所做的更改。
数组中有什么?
答案 1 :(得分:1)
我找到了!!!阵列是singelton属性。我在调用MyClass()。 myArray,而不是调用MyClass.sharedInstance.myArray
答案 2 :(得分:0)
我认为是因为你声明了数组let
:这意味着它将保持不变。尝试将其声明为var
,然后它应该可以正常工作。
修改强>
你是对的,我想我当时误解了你的问题;但我发现这个answer可能很有用;最后你应该声明它var
。