I'm reading an up-to-date book and ran across the ARC section. It explains these two ARC qualifiers:
Weak: Weak indicates that the object should not be retained (does not increase retain count). The compiler will set to nil before destruction.
__unsafe__unretained: Same as weak, but the object is not set to nil before it is destroyed.
My question is, why would it matter is the object is set to nil or not before it's destroyed? If the autorelease pool swings by and releases the destroyed object, it is no longer being used in memory. So, why would it matter if the object is set to nil before it's destroyed? The only case I would think of would be if it was a singleton...