オブジェクトのインスタンスを作成するとき、プロパティを別の変数に割り当てるとプロパティの設定に問題があります。Swift 3の参照
例:ネストされたオブジェクトを含むオブジェクトの場合、私は、子のうちの1人を一時的なvarに割り当てて、使いやすくする必要があります。
の代わりにこれをやって(これは動作します):
myObj.myChildObject[0].someOtherChild[0].property = "something"
私がやろうとしている:
var t = myObj.myChildObject[0].someOtherChild[0]
t.property = "something"
// this doesn't throw an error but doesn't change the value of myObj
できますか?
編集>
は、ここで説明するために不自然な例です:だからVARにクラスのインスタンスを割り当てる
class Car { var name: String = "" }
var merc = Car()
var obj = merc.name
merc.name = "C63 AMG"
obj = "E300"
print("merc.name: \(merc.name)") // prints merc.name: C63 AMG
print("obj.name: \(obj)") // prints obj.name: E300
var ob2 = merc
ob2.name = "Toyota"
print("ob2.name: \(ob2.name)") // prints ob2.name: Toyota
print("merc.name: \(merc.name)") // prints merc.name: Toyota
は、参照を作成します。しかし、そのオブジェクトのプロパティを別のvarに割り当てるとコピーが作成されますか?
私は「objの構造体、列挙型かタプルではないので、それは参照型ではないでしょうか?
編集あなたの質問 'myChildObj'と' someOtherChild'と、誰かがあなたを助けることができるかもしれない、 'myObj'の種類を示すために議論されています。 – CRD