iOS block介紹和使用技巧(基礎篇)

2021-07-09 23:25:08 字數 1676 閱讀 4885

第一部分 block入門

宣告和使用乙個block

int multiplier = 7;

int (^myblock)(int)=^(int num);

printf("%d",myblock(3));

//prints

"21"

//block可以使用相同作用域裡定義的變數

宣告乙個block的引用

void (^blockone)(void);//無參無返回值

int (^blocktwo)(int,char);//int和char引數,int返回值

void(^blocks[10])(int);//有10個block組成的array

typedef float (^myblocktype)(float,float);

myblocktype myfirstblock=//...;

myblocktype mysecondblock=//...;

建立乙個block

^修飾符來表示乙個block的開始,他通常後面跟著乙個()包起來的引數列表。block的主體一般包含在{}裡面。下面定義了乙個簡單的block

int (^onefrom)(int);

onefrom=^(int anint);

全域性block

#import

int globalint = 0;

int (^getglobalint)(void)=^;

block變數

block int x = 123;//x lives in block storage

void (^printxandy)(int)=^(int y);

printxandy(456);//579 456

物件(object)和block變數

當block裡引用乙個物件時,該物件會被retain,但是__block儲存型別修飾符標記不會被retain

呼叫乙個block

int (^onefrom)(int);

onefrom=^(int anint);

onefrom(10);//9

float(^distance)(float,float,float)=^(float s.float a,float t);

float howfar=distance(0.0,9.8,1.0);

block作為乙個函式引數

block作為乙個方法的引數

block bool found=no;

nsset *aset=@[@"alpha",@"bata",@"gamma"];

nsstring *str=@"gamma";

[aset enumerateobjectsusingblock:^(id obj,bool *stop)

}];

拷貝block

你可以用c函式來拷貝和release乙個block

block

copy();

block

release();

注意:盡量不要在迴圈中使用block

Firebug介紹及使用技巧

firebug是網頁瀏覽器firefox下的一款開發除錯工具。安裝firebug後在瀏覽器的外掛程式工具欄中 上方 會有乙個小甲蟲的圖示。f12開啟和關閉firebug視窗。提示每個功能標籤可以通過點選下拉列表設定為 啟用 或 停用 小甲蟲可以設定顯示或不顯示某些功能標籤。功能標籤右側搜尋框可以進行...

iOS block塊傳值的簡單使用 2

我們在專案中常用到的傳值方式無外乎是這三種 1.傳值.2.block 傳值.3.通知.因為 block 傳值使 看上去更加簡潔明瞭 書寫起來也更加的簡便 所以深受大家喜愛 今天我們就來整理下 block 傳值的簡單使用 在各種論壇也看到很多大牛們對 block做了很詳細的解釋,從 block 的深層...

簡單多種Linux VI命令使用技巧介紹

以下使主要介紹了ubuntu的linux vi命令,linux vi命令使用方法,希望對大家有很好的幫助。使linux 技術跟好的提公升。進入vi命令 vi filename 開啟或新建檔案,並將游標置於第一行首 vi n filename 開啟檔案,並將游標置於第n行首 vi filename 開...