學習日記 block

2021-07-03 12:06:41 字數 564 閱讀 1610

block概念:

1.內聯函式從源**層看,有函式的結構,而在編譯後,卻不具備函式的性質,編譯時,類似巨集替換,使用函式體替換呼叫處的函式名

2.block封裝了一段**,可以在任何時候執行

3.block可以作為函式引數或者函式的返回值,而其本身又可以帶輸入引數或返回值

用途:在多執行緒、非同步任務、集合遍歷、集合排序、動畫轉場用到很多。

用法:1> 如何定義block變數

int (^sumblock)(int, int);

void (^myblock)();

2>如何利用block封裝**

^(int a, int b) ;

3.block訪問外部外面變數

block內部可以訪問外面的變數

預設情況下,block內部不能修改外面的區域性變數

給區域性變數加上_block關鍵字,這個區域性變數就可以在block內部修改

4.利用typedef定義block型別

typedef int (^myblock)(int, int);

以後就可以利用myblock這種型別來定義block變數

Block 學習筆記

一 什麼是block?a block is an anonymous inline collectionof code,and sometimes also called a closure 閉包是一種函式,它能夠讀取其它函式的內部變數。block 也相當於內聯函式,執行速度快,簡單方便 二 為什麼...

Block詳細學習

之前對block一知半解,知道用 block,weak等去解決問題,卻沒有去深究過,這篇文章是對學習block的總結 要看block轉換為c 原始碼,用下面的方法轉換 cd到.m所在資料夾,輸入clang rewrite objc m,就會在當前資料夾內自動生成對應的 cpp檔案,雙擊開啟即可 看下...

Objective C學習筆記 block

一 基本概念 1 block的作用 block封裝了一段 在任何時候都可以使用。block的標誌是 2 block的特點 block可以作為函式引數或者函式的返回值,而其本身又可以帶輸入引數或返回值,和函式很像。二 基本使用 1 定義block變數 1 無形參 無返回值 void myblock 定...