標籤:style blog color os 資料 io
/* 1.定義block變數: 傳回值類型 (^block變數名) (參數類型1, 參數類型2, ....); 2.給block變數賦值 block變數名 = ^(參數類型1 參數名稱1, .....) { }; *//* 1.設定動畫屬性 2.開始執行動畫 3.動畫執行完畢 block1 = ^{ 封裝了動畫開始執行前想做的事情 }; block2 = ^{ 封裝了動畫執行完畢後想做的事情 }; */#import <Foundation/Foundation.h>//typedef int MyInt;// MyBlock其實就是新的資料類型名稱typedef int (^MyBlock)(int, int);/* 需要掌握: 1.定義block變數 2.給block變數賦值 3.type和block的應用 */int main(int argc, const char * argv[]){ MyBlock minus = ^(int a, int b) { return a - b; }; int d = minus(10,5);NSLog(@"d id %d", d); MyBlock sum = ^(int v1, int v2) { return v1 + v2; }; int e = sum(10, 11); NSLog(@"e is %d", e); /* int (^minusBlock) (int, int) = ^(int a, int b){ return a - b; }; minusBlock(10, 5); int (^averageBlock) (int, int) = ^(int a, int b) { return (a+ b)/2; };*/ return 0;}void test2(){ int a = 10; __block int b = 10; // block內部不能修改預設的局部變數 // 定義一個block變數 void (^block) () = ^{ //a = 11; b = 11; NSLog(@"b=%d", b); }; block(); block(); block();}void test(){ // 左邊的void:block沒有傳回值 // 最右邊的() :沒有參數 // 中間的(^) block的標誌,不能少 void (^myblock)() = ^{ int a = 11; int b = 11; NSLog(@"a=%d, b=%d", a, b); }; myblock(); // 定義一個block變數,變數名是sumBlock // 最左邊的int:block的傳回值是int類型 // 最右邊的(int, int) block接受兩個int類型的參數 int (^sumBlock)(int, int); sumBlock = ^(int v1, int v2){ return v1 + v2; }; int sum = sumBlock(10, 11); NSLog(@"sum=%d", sum);}