What I understand is:
Memory leaks occur when memory has not been freed or \"released\" Dangling pointers occur when the pointer is NOT set to nil AND the object is
You do the first, ARC does the equivalent of the second. There are no dangling references, with or without the nil assignment, since ARC retained the referenced object (retain count 1) and when execution moves beyond the scope of the myCar definition, ARC will guarantee a release of myCar's referenced object, decrementing the reference count and deallocating the object memory if the resulting reference count is 0.