2017-05-19 1 views
1

Swift 객체에 대한 포인터를 포함하는 변수가 있어야하는 클래스를 만들었습니다. 내가 디스플레이 1에 객체의 궁금 해요 dataDisplay 객체Swift 클래스의 객체에 대한 포인터 사용

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

을 인스턴스화하려면이 옵션을 사용하고

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 
} 

는 청소 기계 또는 청소 기계에 대한 포인터의 복사본이 들어 있습니다.

는 I는 그것이 dataCollector 객체 갱신된다하더라도 UI에서 업데이트되지 않은 display1.object.value1 바인딩 설정 객체 인 경우

(I 일부 잉크() 출력을 통해이를 확인한) 참으로 포인터가 어떻게 포인터 변수를 클래스에 추가 할 수 있습니까?

감사합니다.

+0

NSObject를 서브 클래 싱하는 이유는 무엇입니까? – Alexander

답변

1

collector1display1.object은 모두 동일한 dataCollector 개체를 참조합니다. 모든 참조 (클래스) 유형의 경우입니다. 반면에 값 유형 (enums, tuples, structs)은 모두 할당시 복사됩니다.

관련 문제