Einzelnen Beitrag anzeigen

bra

Registriert seit: 20. Jan 2015
711 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#4

AW: Problem mit ARC unter iOS?

  Alt 21. Jan 2016, 17:05
Wie Darlo schon geschrieben hat, lässt sich das am einfachsten mit Instruments verfolgen, da kann man sich u.a. die komplette Struktur der noch vorhandenen Objekte anzeigen lassen.

Ein Objekt auf nil zu setzen reicht bei ARC nicht unbedingt. Solange noch irgendwelche Verweise auf das Objekt vorhanden sind, wird es nicht freigegeben. Ich habe mir dazu auch zu Debugging-Zwecken eine eigene Routine erstellt:

Code:
procedure TryFree(const AUnitName: String; const AObj: TObject);
begin
  if not Assigned(AObj) then
    Exit;
{$IFDEF AUTOREFCOUNT}
  if AObj.RefCount > 1 then begin
    OutputDebugStrFmt('[[%s]] %s.RefCount=%d', [AUnitName, AObj.QualifiedClassName, AObj.RefCount]);
    AObj.DisposeOf;
  end;
{$ELSE}
  AObj.Free;
{$ENDIF AUTOREFCOUNT}
end;
Die ist ziemlich nützlich, auch um Leaks in den Delphi-Komponenten zu finden.
  Mit Zitat antworten Zitat