title: Retain/release of returned objects
body: <p>I am new to Objective-C, so this might be a dumb question.</p>
  
  <p>I cannot help but see the similarities between ObjC and Microsoft's COM with respect to memory management (<code>AddRef</code>/<code>Release</code> vs <code>retain</code>/<code>release</code>). In a COM environment, it's more or less imposed on you to always <code>AddRef</code> (<code>retain</code>) an object before returning it to the caller. From what I've seen so far (I'm a third through <a href="https://rads.stackoverflow.com/amzn/click/com/0321503619" rel="nofollow noreferrer" rel="nofollow noreferrer">Cocoa® Programming for Mac® OS X (3rd Edition)</a>), the memory management part is somewhat fuzzy.</p>
  
  <p>Assuming there is no GC, what is the idiomatic way to return an object?</p>