The doc says:
In a garbage-collected environment, sending a drain message to a pool triggers garbage collection if necessary; release, however, is a no-op. In a reference-counted environment, drain has the same effect as release. Typically, therefore, you should use drain instead of release.
If I get that right, they say that I should always use -drain, doesn't matter if there's Garbage Collection around or Reference Counting. On iPhone is no GC, so anyways I send -drain?
Unfortunately, the doc only talked about Cocoa, not Cocoa Touch or iPhone. So I am not sure if the same applies there.