Вам нужно выпустить параметры методов в конце их в Objective-C?

Если у меня есть параметр, переданный методу, мне нужно отпустить параметр в конце метода?

Ответ 1

Нет. Подумайте NARC: "Новая скользящая копия Alloc". Если вы ничего не делаете, вам не нужно выпускать.

Ответ 2

Прочтите Cocoa правила управления памятью. Следующее правило относится к вашему вопросу:

Вы получаете право собственности на объект, если его создаете с помощью метода, имя которого начинается с "alloc" или "new" или содержит "copy" (например, alloc, newObject или mutableCopy), или если вы отправляете сохранить сообщение. Вы несете ответственность за отказ от владения собственными вами объектами с помощью выпуска или авторекламы. В любой другой момент, когда вы получаете объект, вы не должны его отпускать.

Очевидно, что вы не получили параметры, создав их (в своем методе). Поэтому единственная часть, о которой вам нужно беспокоиться, заключается в том, сохранили ли вы их в методе. Если вы это сделали, вы должны освободить или автообновить их. Если вы этого не сделали, вы не должны выпускать или автообновлять их.

Ответ 3

Вам нужно освободить их, только если вы retain их в своем методе. Соглашение состоит в том, что вызывающий пользователь должен удостовериться, что объекты, переданные как аргументы, живут по крайней мере до тех пор, пока вызов активен.

Ответ 4

Если вы не работаете напрямую с объектами фундамента, вы должны делегировать все это в ARC.