2. 什么情况使用 weak 关键字,相比 assign 有什么不同?
__weak 关键字是伴随着 ARC 内存管理机制而来的一个变量修饰符,用于防止循环引用。在ARC中,在有可能出现循环引用的时候,往往要通过让其中一端使用weak来解决,比如:delegate代理属性。
weak在对象被销毁后,指针自动赋为nil;而assign不会。
2. 什么情况使用 weak 关键字,相比 assign 有什么不同?
__weak 关键字是伴随着 ARC 内存管理机制而来的一个变量修饰符,用于防止循环引用。在ARC中,在有可能出现循环引用的时候,往往要通过让其中一端使用weak来解决,比如:delegate代理属性。
weak在对象被销毁后,指针自动赋为nil;而assign不会。