Normally, if an object deallocated, all weak references will be nilled.
What about if we enable zombie object?
Product -> Edit Scheme -> Enable Zombie Object
The weak reference will be set to nil even if you enable Zombie Objects.
I tested it like this:
id __weak o;
@autoreleasepool {
id ob = [[NSObject alloc] init];
o = ob;
NSLog(@"Weak ref before release %@", o);
}
NSLog(@"Weak ref after release %@", o);
With Zombies enabled or not, the same output happens:
2013-12-05 23:55:35.571 WeakPointers[93840:303] Weak ref before release 2013-12-05 23:55:35.572 WeakPointers[93840:303] Weak ref after release (null)