@Kenneth: No, there is no reason to call -retain, -release or -autorelease in a garbage-collected app. They are no-ops. In a garbage-collected environment, the runtime does not track the ref-counts of objects at all; instead, it scans the object graph to find which objects aren't being used anymore.
@Joachim: If you want the code to work correctly without garbage-collection enabled, then you have to write it just as you did pre-Leopard, paying attention to all of the retains/releases. And in that case you might as well just turn off GC and get a slight boost in speed and memory usage.
GC is wonderful. It's such a relief not to have to worry about all of that ref-counting gunk anymore...
by Jens Alfke — Oct 28
@Joachim: If you want the code to work correctly without garbage-collection enabled, then you have to write it just as you did pre-Leopard, paying attention to all of the retains/releases. And in that case you might as well just turn off GC and get a slight boost in speed and memory usage.
GC is wonderful. It's such a relief not to have to worry about all of that ref-counting gunk anymore...