最新的assign與weak的區別 看不明白你打我
1 能否產生野指標的區別
weak 修飾的變數使用之後,不會產生野指標,因為其指向的資料清空時,變數會自動置空。 weak是安全的。
assign 修飾的變數使用之後如果沒有置空,可能會產生野指標。
2 修飾物件型別的區別
首先資料分為 物件型別(object) 和 非物件型別(CGFLoat,NSInteger)
weak 只可以修飾物件。(如果你修飾非物件型別,編譯器會報錯)
assign 只修飾非物件型別。 當需要修飾物件型別時,MRC時代使用unsafe_unretained。當然,unsafe_unretained也可能產生野指標,所以它名字是"unsafe_***"。現在就用weak基本沒問題了。
相關文章
- weak和assign的區別
- assign 和 weak 區別?
- iOS中assign和weak修飾符的區別iOS
- BIO、NIO、AIO區別(看不懂你打我)AI
- __weak與__block區別,深層理解兩者區別BloC
- 一篇讓你明白程式與執行緒之間的區別與聯絡執行緒
- ClickHouse與Hive的區別,終於有人講明白了Hive
- defineProperty 和 Proxy區別(直接上結論有一句廢話你打我)
- 5分鐘讓你明白“軟連結”和“硬連結”的區別
- 5 分鐘讓你明白 “軟連結” 和“硬連結”的區別
- Innodb的RR到底有沒有解決幻讀?看不懂你打我!
- 一句話說明白C#中的new與override的區別C#IDE
- ??與?:的區別
- 你知道「編譯」與「解釋」的區別嗎?編譯
- 打Oracle最新CPU patch與打臨時補丁的區別Oracle
- 被無數人寫過的assign,retain,strong,weak,unsafe_unretained,還有copyAI
- Deno 正式釋出,徹底弄明白和 node 的區別
- MySQL的@與@@區別MySql
- mybatis #與$的區別MyBatis
- Null 與 “” 的區別Null
- in與exist , not in與not exist 的區別
- 可怕!那些你看不到的程式
- 你真的瞭解HTTP中GET與POST的區別嗎?HTTP
- 一文帶你搞清 ChatGPT 與 Azure OpenAI 的區別ChatGPTOpenAI
- 看不懂來打我,vue3如何將template編譯成render函式Vue編譯函式
- CentOS 與 Ubuntu 的區別CentOSUbuntu
- artice與section的區別
- GET 與 POST 的區別
- WebSocket 與 Socket 的區別Web
- Postgresql與MySQL的區別MySql
- chown與chmod的區別
- session與cookie的區別SessionCookie
- LESS與SASS的區別
- free 與 CFRelease 的區別
- gulp與webpack的區別Web
- @Autowired 與@Resource的區別
- let與var的區別
- post與get的區別