标签:
基本概念
block的定义
无返回值、无形参的block的定义
// 定义block变量 void (^myBlock) () = ^()// 无形参这里的括号可以省略,简写如下 { // 代码逻辑 }; // 简写形式 void (^myBlock) () = ^ { // 代码逻辑 }; // block变量的调用 myBlock();
有返回值、有形参的block定义
// 定义block变量 int (^sumBlock) (int,int) = ^int (int a,int b)// 这里的返回值类型可以省略 { return a+b; }; // 简写形式 int (^sumBlock) (int,int) = ^(int a,int b) { return a+b; }; // block变量的调用 int num = sumBlock(1,3);
block访问及修改外部变量
block可以直接访问外部变量
int a = 2; // 定义block变量 void (^myBlock); myBlock = ^ { NSLog(@"a = %d",a); }; // block变量的调用 myBlock();
直接修改全局
变量block修改不是代码块内部的局部
变量,必须
在变量前加上__block
关键字
__block int a = 2; // 定义block变量 void (^myBlock); myBlock = ^ { a = 3; }; // block变量的调用 myBlock();
typedef int (^MyBlock)(int,int); // 以后就可以利用MyBlock变量类型来定义block变量了 MyBlock sumBlock = ^int (int a,int b)// 返回值类型可以省略,简写如下 { return a+b; }; // 简写如下 MyBlock sumBlock = ^(int a,int b) { return a+b; }; // 调用block int num = sumBlock(1,2);
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations // 无形参 completion:(void (^)(BOOL finished))completion;// 有形参无返回值 // 有返回值有形参 - (NSUInteger)indexOfObjectPassingTest:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))predicate;
标签:
原文地址:http://www.cnblogs.com/xuebao/p/4631873.html