About OC in the strength of the reference, the need for friends can refer to the next.
The generalized difference between strong and weak references
Strong references, which are often referred to as references, determine the survival of the object directly. If a reference to an object does not exist, and the object no longer appears in the list, the object is freed from memory.
Weak references are the same as strong references, except that they do not determine the survival of the object. Even if an object is held by an infinite number of references, it will be erased if no strong reference is directed to him.
In short, strong equals retain (ARC), and weak and assign,weak have a function more than assign, which automatically turns the pointer to nil when the object disappears.
__weak, __strong is used to modify variables, in addition to __unsafe_unretained, __autoreleasing are used to modify variables. __strong is the default keyword, __weak declares a weak reference that can be automatically nil, __unsafe_unretained declares a weak application, but does not automatically nil, that is, if the area of memory pointed to is freed, This pointer is a wild pointer. __autoreleasing is used to modify the parameters of a function, which is automatically released when the function returns.
Strong references in OC (strong referene) and weak references (weak reference)