Строка [mp release];
не обязательно должна быть в операторе if
.
В Objective-C вы можете отправить сообщение на nil
. Таким образом, если ваш объект не был выделен, эта строка не будет аварийно завершена, поскольку метод init
вернет nil
.
Может быть, поэтому Instruments сообщает об утечке памяти, поскольку не может быть уверена, что ваше условие выполнено.
Но ваш код кажется верным.
Также проверяет ваши свойства, для copy
или retain
.