关于block的所有知识点总结在git上
首先问一个问题,以下代码会打印什么?
#import "ViewController.h"
//#import "XZLTextField.h"
@interface ViewController ()
@end
static int staticGloblVal = 10;
int globlVal = 10;
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
self.view.backgroundColor = [UIColor whiteColor];
[self createUI];
}
- (void)createUI {
int val = 10;
static int staticVal = 10;
__block int bVal = 10;
void (^simpleBlock)(void) = ^{
NSLog(@"simpleBlock val=%d staticVal=%d staticGloblVal=%d globlVal=%d bVal=%d",val,staticVal,staticGloblVal,globlVal,bVal);
};
val = 5;
staticVal = 5;
staticGloblVal = 5;
globlVal = 5;
bVal = 5;
NSLog(@"out val=%d staticVal=%d staticGloblVal=%d globlVal=%d bVal=%d",val,staticVal,staticGloblVal,globlVal,bVal);
simpleBlock();
}
答案: out val=5 staticVal=5 staticGloblVal=5 globlVal=5 bVal=5
simpleBlock val=10 staticVal=5 staticGloblVal=5 globlVal=5 bVal=5
这篇文章主要就是让我们理解为什么是结果是这样的