iOS中assign和weak修饰符的区别

assign与weak,它们都是弱引用声明类型,最大的区别在那呢?
如果用weak声明的变量在栈中就会自动清空,赋值为nil。
如果用assign声明的变量在栈中可能不会自动赋值为nil,就会造成野指针错误!
他们常用在基本类型属性,比如BOOL,int等,还有就是delegate。

在使用delegate时,需要注意,非ARC时是使用assign,但到了ARC时代,都建议使用weak,这样更安全。

你可能感兴趣的:(iOS中assign和weak修饰符的区别)