assign
自動(dòng)生成: __unsafe_unretained
1.不是強(qiáng)引用 不能保住OC對(duì)象的命
2.如果引用的OC對(duì)象銷毀了,指針并不會(huì)被自動(dòng)清空,依然指向銷毀的對(duì)象(很容易產(chǎn)生野指針錯(cuò)誤 : EXC_BAD_ACCESS)
weak
生成: _Nullable__weak
1.不是強(qiáng)引用,不能保住OC對(duì)象的命
2.如果引用的OC對(duì)象銷毀了,指針被自動(dòng)清空(變?yōu)閚il),不再指向銷毀的對(duì)象(永遠(yuǎn)不會(huì)產(chǎn)生野指針錯(cuò)誤)
用途
- assign 一般用在基本數(shù)據(jù)類型上面,你如int\double等
- weak 一般用在代理對(duì)象上面,或者用在解決循環(huán)引用的問題
- assign 的速度 > weak.