Ein
dangling pointer ist etwas gänzlich anderes und hat auch noch seine ganz eigenen Tücken.
NON-ARC (dangling pointer)
Ich habe irgendwo eine Referenz auf eine Instanz vom Typ
TFoo. An irgendeiner Stelle im Programm wird diese Instanz freigeben. Jeder Zugriff auf diese Instanz würde jetzt eine
Exception produzieren.
Aber, wenn im wieteren Verlauf der Anwendung eine Instanz erzeugt wird, die vom Typ
TFoo oder Ableitung ist oder in der
VMT an der gleiche Stelle eine Methode mit der gleichen Signatur besitzt und man verwendet jetzt diese
alte TFoo Instanz (die, die eigentlich entsorgt wurde), dann gibt es keine
Exception (obwohl es eine geben müsste).
Es gibt also ein Szenario, wo es keine
Exception gibt, obwohl es eine bräuchte.
ARC
Dieses oben skizzierte Szenario gibt es bei ARC
nicht. Nach einem DisposeOf wird zuverlässig eine
Exception geworfen,
garantiert.