Ответ 1
Нет. Подумайте NARC: "Новая скользящая копия Alloc". Если вы ничего не делаете, вам не нужно выпускать.
Если у меня есть параметр, переданный методу, мне нужно отпустить параметр в конце метода?
Нет. Подумайте NARC: "Новая скользящая копия Alloc". Если вы ничего не делаете, вам не нужно выпускать.
Прочтите Cocoa правила управления памятью. Следующее правило относится к вашему вопросу:
Вы получаете право собственности на объект, если его создаете с помощью метода, имя которого начинается с "alloc" или "new" или содержит "copy" (например, alloc, newObject или mutableCopy), или если вы отправляете сохранить сообщение. Вы несете ответственность за отказ от владения собственными вами объектами с помощью выпуска или авторекламы. В любой другой момент, когда вы получаете объект, вы не должны его отпускать.
Очевидно, что вы не получили параметры, создав их (в своем методе). Поэтому единственная часть, о которой вам нужно беспокоиться, заключается в том, сохранили ли вы их в методе. Если вы это сделали, вы должны освободить или автообновить их. Если вы этого не сделали, вы не должны выпускать или автообновлять их.
Вам нужно освободить их, только если вы retain
их в своем методе. Соглашение состоит в том, что вызывающий пользователь должен удостовериться, что объекты, переданные как аргументы, живут по крайней мере до тех пор, пока вызов активен.
Если вы не работаете напрямую с объектами фундамента, вы должны делегировать все это в ARC.