title: Objective C two-phase construction of objects
body: <p>I've been reading up on RAII and single vs. two-phase construction/initialization.  For whatever reason, I was in the two-phase camp up until recently, because at some point I must have heard that it's bad to do error-prone operations in your constructor.  However, I think I'm now convinced that single-phase is preferable, based on questions I've read on SO and other articles.</p>
  
  <p>My question is:  Why does Objective C use the two-phase approach (alloc/init) almost exclusively for non-convenience constructors?  Is there any specific reason in the language, or was it just a design decision by the designers?</p>