Not just is reference counting a form of garbage collection (as pcwalton pointed out), it is also not the case that you had to retain&#x2F;release stuff yourself, certainly not since Objective-C 2.0&#x27;s properties.<p>Here is the code to define and use a property pre ARC with properties:<p><pre><code>   @property NSString *name;
   ...
   object.name = @&quot;Marcel&quot;;
</code></pre>
And here is the same code with ARC:<p><pre><code>   @property NSString *name;
   ...
   object.name = @&quot;Marcel&quot;;

</code></pre>
Spot the difference?  Now it turns out that there <i>are</i> some differences, such as automatic generation of -dealloc methods and weak references and some cosmetic stuff.  But overall, it&#x27;s at best a subtle difference and for most code you won&#x27;t be able to tell the difference.<p>Pre Objective-C 2.0, there were solutions such as AccessorMacros[1], which handled the same use-cases except without the dot syntax (which is somewhat questionable) and have the advantage of being user-defined and user-extensible, so for example if you want a lazy accessor, you don&#x27;t have to wait for your liege lord, er language supplier to add them, or create a whole new language to do the trick.  Instead, you just write 4-5 lines of code and: done!<p>[1]  <a href="https:&#x2F;&#x2F;github.com&#x2F;mpw&#x2F;MPWFoundation&#x2F;blob&#x2F;master&#x2F;Classes&#x2F;AccessorMacros.h" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mpw&#x2F;MPWFoundation&#x2F;blob&#x2F;master&#x2F;Classes&#x2F;Acc...</a>