1) Wikipedia said: "The difference between weak (_weak) and assign (_assign) is that when the object the variable pointed to is being deallocated, whether the value of the variable is going to be changed or not. weak ones will be updated to nil and the assign one will be left unchanged, as a dangling pointer."
But after I tried a sample in Xcode like this
__weak NSObject *obj1 = [[NSObject alloc] init];
[obj1 release];
If Wiki's right, the address obj1 pointed to must be nill
after release. But the address obj1 pointed to is still 0xabcdef...
Wiki's wrong ?
2) Help me distinguish __weak, __block, __assign
?