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