他们常用在基本类型属性,比如 BOOL,int 等,还有就是 delegate。 在使用 delegate 时,需要注意,非 ARC 时是使用 assign,但到了 ARC 时代,都建议使用 weak,这样更安全。 为什么呢?因为用 weak 声明的变量在栈中就会自动清空,赋值为 nil。 用 assign 声明的变量在栈中可能不会自动赋值为nil,就会造成野指针错误。
他们常用在基本类型属性,比如 BOOL,int 等,还有就是 delegate。 在使用 delegate 时,需要注意,非 ARC 时是使用 assign,但到了 ARC 时代,都建议使用 weak,这样更安全。 为什么呢?因为用 weak 声明的变量在栈中就会自动清空,赋值为 nil。 用 assign 声明的变量在栈中可能不会自动赋值为nil,就会造成野指针错误。