iOS中assign和weak修飾符的區別

weixin_34234823發表於2017-02-07

assign與weak,它們都是弱引用宣告型別,最大的區別在那呢?
如果用weak宣告的變數在棧中就會自動清空,賦值為nil。
如果用assign宣告的變數在棧中可能不會自動賦值為nil,就會造成野指標錯誤!
他們常用在基本型別屬性,比如BOOL,int等,還有就是delegate。

在使用delegate時,需要注意,非ARC時是使用assign,但到了ARC時代,都建議使用weak,這樣更安全。

相關文章