asssign 和weak的區別
- 本質區別
- __unsafe_unretained的速度 > __weak
objc
@property (nonatomic ,assign) XXXDog *dog:
*__unsafe_unretained _dog;
__unsafe_unretained的特點:
1.不是強引用,不能保證OC對象的命
2.如果引用的OC對象銷毀了,指針并不會被自動清空,
依然指向銷毀的對象(很容易產生野指針錯誤:EXC_BAD_ACCESS)
@property(nonatimic,weak)XXXg *dog;//XXXDog *_Nullable __Weak_dog;/
__weak 的特點:
1.不是強引用,不能保住Oc對象的命
2.如果引用的OC對象銷毀了,指針會被自動清空(變為nil),
不再指向銷毀的對象(永遠不會產生野指針錯誤)
- 用途
- assign 一般用在基本數據類型上面,比如int\double等;
- weak 一般用在代理對象上面,或者用來解決循環強引用的問題
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。