1. 程式人生 > >關於oc中出現的typedef的用法/定義函式指標

關於oc中出現的typedef的用法/定義函式指標

typedef int (^calculateBlock)(int a,int b);

這裡面typedef的作用只是給 calculateBlock取了一個 別名,說明以後可以直接使用。

calculateBlock類似於*所以可以有類似的用法,以後可以直接使用calculateBlock來定義方法。例:

- (int)calculateWithNumber1:(int)number1 andNumber:(int)number2 andCalculate:(calculateBlock)calculate;

直接使用calculateBlock來定義作為方法的引數。做到的呼叫為:

- (int)calculateWithNumber1:(int)number1 andNumber2:(int)number2 andCalculate:(calculateBlock)calculate

{

    //經常變化的功能,在設計當中叫做封裝變化

    return calculate(number1,number2);

}

在main中程式碼為:

  int (^sumBlock)(int a, int b) = ^int (int a, int b) {

            int result = (a * b);

            x = result;

            return result;

        };

 呼叫自己定義的方法:

 int sum =[cal calculateWithNumber1:10 andNumber:20 andCalculate:sumBlock];

在不知道使用什麼樣的方式計算時可以使用傳入block。來假設。