There are a bunch of reasons here: http://macresearch.org/difference-between-alloc-init-and-new
Some selected ones are:
new
doesn’t support custom initializers (likeinitWithString
)alloc-init
is more explicit thannew
General opinion seems to be that you should use whatever you’re comfortable with.