您的位置:首页 > 移动开发 > Objective-C

Block

2016-02-02 18:40 579 查看

Block

objective-c中可以用block代替delegate使用,更简洁灵活


一、相关概念

声明:对编译器说:这里我有一个函数叫function() 让编译器知道这个函数的存在。
定义:具体就是函数的实现过程 写明函数体。
调用:调用一个函数 -_-|||


二、 形式

一、带参数无返回值

//=左边:声明 =右边:定义
void(^blockFunc)(int)=^(int n){
NSLog(@"选择了什么...");
}
//调用
blockFunc(6);


二、带参数返回值

//=左边:声明 =右边:定义
int (^blockFunc)(int,int)=^(int n1,int n2){
return n1+n2;
}
//调用
NSLog(@"%d",blockFunc(100,20));


三、不带参数和返回值

void(^blockFunc)()=^(){
NSLog(@"no parameter no return");
};


四、typedef 定义block 类型 (和指向函数的指针很像)

//blockFunc 是typedef定义的别名
typedef int(^blockFunc)(int,int);
//相当于声明 int(^block1)(int,int);int(^block2)(int,int);
blockFunc block1,block2;
//定义
block1=^(int a,int b){
return a-b;
};
block2=^(int a,int b){
return a+b;
};


}

三、应用

(未完待续)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  objective-c 函数