首页 > 代码库 > IOS基础_Block语法的简单使用

IOS基础_Block语法的简单使用

开始学IOS的时候没怎么接触过block语句,在后来用到的越来越多,就不得不学了,刚开始理解比较困难的,然后自己做了一个例子就慢慢理解了,不说废话了,上代码:


正常的简单地申明调用一个block语句是这样的:

//申明

int (^yxpBlock)(int, int)  =^(int a ) {return a*a ;};      

说明:返回值(^语句块名称)(传人参数类型)=^(传人参数){主体};


//调用

int result = square(5);


我建了一个测试项目包含了(yxpAppDelegate和yxpViewController)两个类


在yxpViewController类里面


申明了一个block语句类型

@classyxpViewController;

typedef void (^yxpBlock) (yxpViewController *);


在yxpViewController 申明了yxpBlock变量

@interface yxpViewController :UIViewController

@property (nonatomic,assign)yxpBlock yxpblock;

@end


在touchesBegan: withEvent:调用block语句 (调用block语句要用一根下划线,@propert默认提供)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

   _yxpblock(self);

}


//在yxpAppDelegate中使用了block语句

__blockNSString *str=@"触摸屏幕";

yxpViewController *viewContro=[[yxpViewControlleralloc]init];

 viewContro.yxpblock=^(yxpViewController *viewController){

     NSLog(@"---------%@",str);

   };

   self.window.rootViewController=viewContro;


注意:block语句可以读取外部变量,但是不能写入,如果需要在block语句里修改外部变量,外部变量要用__block (两根下划线)标识

将这个例子弄懂相信你就对block语句有一个初步的了解了