클래스 유형이 Swift에서 참조 유형임을 연구했습니다.Swift 3 참조 유형 및 메모리 관리
따라서, 예를 들어, 나는 다음과 같은 문장이 있습니다, ++
SomeDefinedClass *ptrA = new SomeDefinedClass(10, 10);
SomeDefinedClass *ptrB = new SomeDefinedClass(30, 30);
// (ptrA->x, ptrA->y) == (10, 10)
// (ptrB->x, ptrB->y) == (30, 30)
ptrB = ptrA;
ptrB->x = 50;
ptrB->y = 50;
// (ptrA->x, ptrA->y) == (50, 50) due to both ptrA and ptrB
// point to the same object in the memory
그러나 C에서 포인터 할당의 종류 :
class Rectangle {
var x: Int
var y: Int
}
var a = Rectangle(x: 10, y: 10)
var b = Rectangle(x: 30, y: 30)
// (a.x, a.y) == (10, 10) and (b.x, b.y) == (30, 30)
b = a
b.x = 50
b.y = 50
// (a.x, a.y) == (50, 50) due to both instance a and b
// refer to the same piece in the memory
나는이 문제가 예를 들어, C++의 포인터와 유사하다 생각
delete ptrB;
B 않고 메모리 누출을 일으킬 수있다 (ptrB는 ptrA를 =)
ptrB = ptrA;
는 efore 내가 공부 튜토리얼이, 언급하지 않았다하지만 스위프트가 같은 몇 가지 행동을 할 수 있다고 생각 "ptrB 삭제를;" 자동으로 이 작업을 처리 할 필요가 없습니다.
대단히 감사합니다. – Nestarneal