Block

1. 什么是block

--block是將函數及其函數執行體封裝起來的對象。
block實際是一個結構體,block_impl 包含兩個重要的數據 一個是isa指針(實例對象體objc_object和類結構體objc_class一樣含有isa指針)一個是funcptr函數指針指向函數體。
(block是一個對象,封裝了函數及函數體的執行上下文)

2. block調用?

Block的調用是函數調用

3. Block截獲變量的特性

》基本數據類型的局部變量是直接截獲其值(int bool啥的)
〉對象類型的局部變量是值連同所有權修飾符一同截獲(強引用)
》對于靜態變量,全局變量,靜態全局變量不截獲

4.為什么block會有循環引用

8

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容