2017-05-19 10 views
1

Swiftオブジェクトへのポインタを含む変数を持つべきクラスを作成しました。Swiftクラスのオブジェクトへのポインタを使用

class dataCollector: NSObject { 
    var dataDict : [String:Int] = ["value1":10] 
    ...(class will update values inside dataDict regularly)... 
} 

class dataDisplay: NSObject { 
    var name : String = "Name" 
    var object : dataCollector? = nil 
} 

私はDISPLAY1内のオブジェクトの思ったんだけどdataDisplayオブジェクト

var collector1 = dataCollector() 
... 
var display1 = dataDisplay() 
... 
display1.object = collector1 

をインスタンス化し、これを使用していますがコレクタ1またはコレクタ1へのポインタのコピーが含まれています。

オブジェクトである場合、私は(私はいくつかの印刷()出力を介して、これをチェックしました)それはデータ・コレクターのオブジェクトに更新されたが、UIで更新されていないdisplay1.object.value1に結合

を設定実際にポインタはありません。どうすればポインタ変数をクラスに追加できますか?

ありがとうございます!

+0

これらはすべてNSObjectをサブクラス化するのはなぜですか? – Alexander

答えて

1

collector1およびdisplay1.objectは、同じdataCollectorオブジェクトを参照しています。これはすべての参照(クラス)タイプの場合です。一方、値の型(enums、tuples、structs)はすべて代入時にコピーされます。

関連する問題