Ваш пример не приведет к утечке памяти, поскольку var1
и var2
указывают на один и тот же объект в памяти - таким образом, вызов alloc
имеет соответствующий release
.Если бы NSObject
было сохранено в том виде, в котором оно было присвоено var2
, произошла бы утечка памяти, поскольку не было бы совпадений release
.
Когда в руководстве по управлению памятью говорится о концепции владения, это не означает, что переменная (например, var1
) владеет объектом;это больше о том, какая «область» владеет им (например, класс или метод).В вашем примере метод, содержащий эти операторы, будет отвечать за освобождение объекта.