__weak和__block的區別
阿新 • • 發佈:2019-02-02
1.IOS中 __weak 和 __block 的區別
// 蘋果官方文件是: A powerful feature of blocks is that they can modify variables in the same lexical scope. You signal that a block can modify a
variable using the __block
storage
type modifier.
大致的意思是:(1) __block 修飾的物件在block 內部進行進行使用時.不要把修飾的物件當做常量,而是當做一個變數來使用.
(2) __block修飾的物件可以防止出現迴圈引用.// __weak的介紹蘋果官方文件說明如下:
_weak specifies a referencethatdoesnot keep the
referenced object alive. A weak referenceissettonilwhen
there are no strong references totheobject.
__weak 修飾的物件等同於宣告的屬性為weak,所以可以解決block的迴圈引用, 並且_weak 修飾的物件的引用計數為0的時候, 修飾的物件為nil