2016-12-08 2 views

답변

12

참조로 전달됩니다. 테스트 할 수 있습니다. 선언 : 다음

class A{} 
struct B { let a = A()} 

:

let b = B() 
print("A = \(unsafeAddressOf(b.a))")//0x0000600000019450 
let b_copy = b 
print("A = \(unsafeAddressOf(b_copy.a))")//0x0000600000019450 
5

모든 속성 복사 구조체의을 (당신이 할당 된 것처럼 (=) 새로운 구조체의 해당 속성에 기존 구조체의 각 속성) 형식에 관계없이 구조체가 복사 될 때.

"클래스 속성"이라고 말하면 참조 유형의 변수라고 가정합니다. 클래스와 이름이 같은 형식은 해당 클래스의 개체를 가리키는 참조에 대한 참조 형식을 나타냅니다. 참조 형식 (참조)의 값을 복사하면 동일한 개체를 가리키는 다른 참조가 만들어집니다. "객체"는 Swift의 값이 아니라 "객체 유형"이 없습니다. 객체는 항상 객체를 가리키는 참조를 통해 조작됩니다.