iOS weak与assign的区别与联系

133 阅读1分钟

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

参考文章:crash.163.com/#news/!news…