RAD Studio Athens

1.17

Description

This code example indicates how the Automatic Reference Counting (ARC) mechanism manages objects' lifetimes. ARC is the default for the Delphi mobile compilers.

Code

uses
  System.SysUtils;

type
  TMySimpleClass = class
  private
    //
    stringMember: String;
    constructor Create(Text: String);
  end;

constructor TMySimpleClass.Create(Text: String);
begin
  stringMember := Text;
end;

procedure SampleARC(ref: TMySimpleClass);
var
  localObj1, localObj2: TMySimpleClass;
begin
  // After the following assignments, the reference count should be 4.
  // Two references coming from localObj1 and localObj2, and one from passing the object to the procedure.
  localObj1 := ref;
  localObj2 := localObj1;
  // By the moment the end statement has been passed in this procedure,
  // the Automatic Reference Counting mechanism will manage the memory automatically.
end;

var
  myObject: TMySimpleClass;

begin
  // The reference count for the newly created object is 1.
  myObject := TMySimpleClass.Create
    ('This is a code example for Automatic Reference Counting');
  SampleARC(myObject);

  // The reference count is still 1.
end.
// Ending the program will release the object from the memory.

Uses

See Also