Arrays 快速更新数组中对象的属性无效

Arrays 快速更新数组中对象的属性无效,arrays,swift,Arrays,Swift,我试图更新数组中对象的属性,但它不起作用。 我尝试替换数组中的整个对象,但没有效果 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属性。

我试图更新数组中对象的属性,但它不起作用。 我尝试替换数组中的整个对象,但没有效果

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这取决于它在数组中的位置。如果它是一个类,那么它将是对实例的引用。如果它是一个结构,则在指定时将获得它的副本,从而导致对副本所做的更改不会应用于对象


阵列中有什么?

这取决于阵列中有什么。如果它是一个类,那么它将是对实例的引用。如果它是一个结构,则在指定时将获得它的副本,从而导致对副本所做的更改不会应用于对象


数组中有什么?

我认为是因为您正在声明数组let:这意味着它将保持不变。尝试将其声明为var,然后它就可以工作了

编辑
你是对的,我想我当时误解了你的问题;但我发现这是有用的;最后,您应该将其声明为var。

我认为这是因为您正在声明数组let:这意味着它将保持不变。尝试将其声明为var,然后它就可以工作了

编辑
你是对的,我想我当时误解了你的问题;但我发现这是有用的;最后,您应该将其声明为变量。

我找到了它!!!数组是singelton属性。我在给我的班级打电话。myArray,而不是调用MyClass.sharedInstance.myArray,我找到了它!!!数组是singelton属性。我在给我的班级打电话。myArray,而不是调用MyClass.sharedInstance.myArray

对象未被更改。没有必要声明它是varI发现的!!!数组是singelton属性。我在给我的班级打电话。未更改myArray而不是调用MyClass.sharedInstance.myArrayobject。没有必要声明它是varI发现的!!!数组是singelton属性。我在给我的班级打电话。myArray,而不是调用MyClass.sharedInstance.myArrayHave您是否尝试过:myArray[0]。属性=新值?我刚刚将您的代码复制到了一个游乐场,它工作正常。值已更新,secondObject.property是新值。您的代码。@sasquatch,我第一件事就尝试了。但价值并不是很高saved@Adam,我简化了问题的代码t=。我将用原始代码更新我的问题。您是否尝试过:myArray[0]。property=new Value?我刚刚将您的代码复制到一个游乐场中,它工作正常。值已更新,secondObject.property是新值。您的代码。@sasquatch,我第一件事就尝试了。但价值并不是很高saved@Adam,我简化了问题的代码t=。我会用我找到的原始代码更新我的问题!!!数组是singelton属性。我在给我的班级打电话。myArray,而不是调用MyClass.sharedInstance.myArray我找到了它!!!数组是singelton属性。我在给我的班级打电话。myArray,而不是调用MyClass.sharedInstance.myArray