1.Block簡單用法
#import <Foundation/Foundation.h>
/**1.求兩個數的和*/
void createBlock(){
int (^sumBlock)(int,int) = ^(int num1,int num2){
return num1+num2;
};
/**1.1調用block*/
int c = sumBlock (10,9);
NSLog(@"%d",c);
}
/**2.求兩個數的平方*/
void sqrtBlock(){
int (^sqrts)(int,int) = ^(int num3, int num4){
return num3 *num4;
};
/**2.1調用block*/
int d = sqrts(10,10);
NSLog(@"%d",d);
}
/**3.打印星花,定義一個沒有返回值沒有參數的block*/
void printBlock(){
void (^logBlock)(int) = ^(int star){
for (int i = 0; i < star; i++) {
NSLog(@"*******************");
}
};
/**3.1調用block*/
logBlock(3);
}
/**4.打印星花,定義一個沒有返回值沒有參數的block*/
void logStar(){
void(^logstar)() = ^{
NSLog(@"**************");
NSLog(@"***************");
NSLog(@"***********************");
};
/**4.1調用block*/
logstar();
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
/**1.求兩個數的和*/
createBlock();
/**2.求兩個數的平方*/
sqrtBlock();
/**3.打印星花*/
printBlock();
/**4.打印星花,無參數*/
logStar();
}
return 0;
}
2.聲明別名Typedef
/**5.實現兩個數的減法*/
/**5.1聲明別名*/
typedef int (^MyBlock)(int,int);
/**5.2創建一個block變量*/
MyBlock myBlock = ^(int num1, int num2){
return num1 * num2;
};
/**5.3block的調用*/
NSLog(@"%d",myBlock(5,5));