Я читал о RAII и одинарной и двухфазной конструкции/инициализации. По какой-то причине я был в двухэтапном лагере до недавнего времени, потому что в какой-то момент я, должно быть, слышал, что плохо делать операции с ошибками в вашем конструкторе. Однако я думаю, что теперь я убежден, что однофазный предпочтительнее, основываясь на вопросах, которые я прочитал о SO и других статьях.
Мой вопрос: почему Objective C использует двухфазный подход (alloc/init) почти исключительно для конструкторов без удобства? Есть ли какая-то конкретная причина в языке, или это просто дизайнерское решение дизайнеров?