第一部分 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 開...