첫째, 난 당신이하지 이미 가지고있는 경우, 문서를 보면 좋습니다.
여기에서이 주제에 대한 전체 설명을 볼 수 있습니다. 델파이
자동 참조 계산
메모리 관리는 항상 당신이 ARC 지원 컴파일러를 사용하는 경우, 일을 변경하려는 때문에 동일하지 않습니다.
ARC는 사용자가 필요하지 않은 개체에 대해 걱정할 필요없이 개체의 수명을 관리하는 방법입니다.
이것은 일반적으로 내가 try-finally
블록 내부에 코드를 삽입 할 필요가 여기에 객체 (비 ARC)
var
a: TMyNiceClass;
begin
a := TMyNiceClass.Create;
try
a.somethingToDo();
finally
a.Free;
end;
end;
을 사용하는 방법, 그래서 때 내 객체가 사라질 것이라고 확신 더 이상 필요하지 않습니다 (그리고 메모리 누수를 피하십시오). 당신이 "자동"이기 때문에 try-finally
를 사용 Free
할 필요가없고, 어느 쪽도하지 않기 때문에 위의 코드는, ARC에서 잘 작동
var
a: TMyNiceClass;
begin
a := TMyNiceClass.Create;
a.somethingToDo();
end;
대신 ARC에서. 또한 소멸자는 끝에 도달하면 호출됩니다. 문을 사용하지만 끝나기 전에 개체 사용을 중지하려면 a := nil
을 사용할 수 있습니다. Free
를 호출 전통적인 스타일에서
주, ARC 스타일의 Free
는 개체 = 전무에 대한 참조를 할당 (객체에 대한 참조가 전무했다하지 않는 한) 소멸자를 호출합니다.
무료 사용 여부를 알고 싶습니까? –
그 이유는 내가 사용할 수 없기 때문에 무언가를 속일 필요가 있기 때문입니다 ... 그러나 try-finally 블록이 올바르게 보이지 않습니까? –
왜 이걸 downvote? –