代码的简单了解
#import <Foundation/Foundation.h>
int c=0;
int main(int argc, const char * argv[]) {
@autoreleasepool {
//block声明格式:返回值类型(^block名字)(形参列表)
int (^myFun)();
// block实现:block名字=^(形参列表){};
myFun=^(){
NSLog(@"这是一个代码块");
return 1;
};
//调用:block名称(实参列表),有返回值的block,可以用一个变量接收
int a=myFun();
NSLog(@"%d",a);
//有返回值,有形参,声明和实现放一起
int (^myBlock)(int a,int b)=^(int a,int b){
return a+b;
};
//调用
int sum=myBlock(10,20);
NSLog(@"%d",sum);
//返回类型是字符串 NSString *(^名字)(形参列表)
NSString *(^myBlock1)(NSString *s)=^(NSString *s){
NSLog(@"字符串%@",s);
return s;
};
myBlock1(@"456");
//有一个局部变量,要在block进行值的改变
__block int b=0;
void (^myBlock2)()=^(){
b++;
NSLog(@"%d",b);
};
//有一个全局变量,在block进行值的改变
void (^myBlock3)()=^(){
c++;
};
//例如
//声明一个square的Block Pointer,其所指向的Block有一个int输入和int输出
int (^square)(int);
//将Block实体指定给square
square = ^(int a){ return a+a ; };
//调用方法。
int y = square(6);
NSLog(@"%d", y);
}
return 0;
}