let x = User()?
y = x
z = y
y = nil
Reference count for "x" should be 2, is that right?
Yes, you are passing around references, and you did that twice.
zbecome nil, or does it continue to be
z does not become nil, since
z holds a reference to the
y is set to nil, the reference count drops to 1, so it stays alive.