标签:
基本概念
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