黑马程序员技术交流社区
标题:
二战黑马:block类型
[打印本页]
作者:
崔石炫
时间:
2014-10-23 23:51
标题:
二战黑马:block类型
// main.m
/*
block与函数的相似之处:
* 都能封装一段代码
* 都能接收参数
* 都有返回值
函数的定义:
* 无参数、无返回值
void myFunction()
{
NSLog(@"没有参数、没有返回值的函数");
}
* 有参数、有返回值
int sumFunction(int a , int b)
{
return (a+b)/2;
}
block的定义:
* 无参数、无返回值
void (^myBlock)() = ^(){
NSLog(@"没有参数、没有返回值的block");
};
* 有参数、有返回值
int (^sumBlock)(int , int) = ^(int a , int b){
return (a+b)/2;
};
用typedef定义新类型:
typedef double (^NewBlockType)(double , double);
NewBlockType averageBlock = ^(double a , double b){
return (a+b)/2;
};
*/
#import <Foundation/Foundation.h>
typedef double (^AverageBlock) (double , double); //用typedef宏定义来定义新类型AverageBlock
int main(int argc, const char * argv[])
{
@autoreleasepool {
void (^myBlock) (); //定义一个没有返回值,没有参数的block变量myBlock
myBlock = ^(){
NSLog(@"hello , world");
};
myBlock();
int (^sumBlock) (int , int); //定义一个block变量sumBlock,接收2个int类型参数,返回int类型
sumBlock = ^(int a , int b){
return a+b;
};
int sum = sumBlock(12 , 53);
NSLog(@"%d" , sum);
AverageBlock averageBlock;
averageBlock = ^(double a , double b){
return (a+b)/2;
};
NSLog(@"%f" , averageBlock(23.6 , 642.4));
}
return 0;
}
复制代码
作者:
弹琴骚年
时间:
2014-10-23 23:54
老师说推荐使用block类型处理问题。。好像也不是很多人用。。
作者:
崔石炫
时间:
2014-10-24 00:05
弹琴骚年 发表于 2014-10-23 23:54
老师说推荐使用block类型处理问题。。好像也不是很多人用。。
还没学到要用block的地方,视频里讲UI很多用block吧。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2