//
// main.m
// 01-Block
#import <Foundation/Foundation.h>
//void logStar()
//{
// NSLog(@"***************");
// NSLog(@"***************");
// NSLog(@"***************");
//}
void test3();
int main(int argc, const char * argv[])
{
@autoreleasepool {
test3();
}
return 0;
}
/**
定义了一个有返回值有参数的block
*/
void test3()
{
// 定义一个block计算两个整数的和
int (^sumBlock)(int, int) = ^(int num1, int num2) {
return num1 + num2;
};
int c = sumBlock(10, 9);
// 定义一个block计算一个整数的平方
int (^pinfangBlock)(int);
pinfangBlock = ^(int num){
return num * num;
};
pinfangBlock = ^(int num) {
return num + 2;
};
int d = pinfangBlock(10);
NSLog(@"d is %d", d);
}
/**
定义了一个没有返回值 但有参数的block
*/
void test2()
{
// 定义block变量, 存储一段代码, 这段代码的功能是能打印任意行数的****
void (^logStarBlock)(int) = ^(int numberOfLines){
for (int i = 0; i<numberOfLines; i++) {
NSLog(@"***************");
}
};
logStarBlock(1);
}
/**
定义了一个没有返回值没有参数的block
*/
void test()
{
// 定义简单的block变量
// block跟函数很像: 返回值、参数
void (^logStar)() = ^{
NSLog(@"***************");
NSLog(@"***************");
NSLog(@"***************");
};
logStar();
}
01-Block的简单使用
最新推荐文章于 2024-06-09 12:57:22 发布
