#import <Foundation/Foundation.h>
// 定义Blocks的typedef
typedef int (^SumBlockT) (int a, int b);
int main (int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
void (^myblocks) (void) = NULL;
myblocks = ^(void) {
NSLog(@"in blocks");
}; // 给myblocks 赋值
NSLog(@"before myblocks");
myblocks(); // 执行myblocks;
NSLog(@"after myblocks");
/*
before myblocks
in blocks
after myblocks
*/
int (^myblocks2) (int a, int b) = ^(int a, int b) {
int c = a+b;
return c;
};
NSLog(@"before blocks2");
int ret = myblocks2(10, 20);
NSLog(@"after blocks2 ret %d", ret);
__block int sum = 0;
int (^myblocks3) (int a, int b) = ^(int a, int b) {
sum = a+b;
return 3;
};
myblocks3(20, 30);
NSLog(@"sum is %d", sum);
SumBlockT myblocks4 = ^(int a, int b) {
NSLog(@"c is %d", a+b);
return 0;
};
myblocks4(50, 20);
}
return 0;
}
// 定义Blocks的typedef
typedef int (^SumBlockT) (int a, int b);
int main (int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
NSLog(@"Hello, World!");
void (^myblocks) (void) = NULL;
myblocks = ^(void) {
NSLog(@"in blocks");
}; // 给myblocks 赋值
NSLog(@"before myblocks");
myblocks(); // 执行myblocks;
NSLog(@"after myblocks");
/*
before myblocks
in blocks
after myblocks
*/
int (^myblocks2) (int a, int b) = ^(int a, int b) {
int c = a+b;
return c;
};
NSLog(@"before blocks2");
int ret = myblocks2(10, 20);
NSLog(@"after blocks2 ret %d", ret);
__block int sum = 0;
int (^myblocks3) (int a, int b) = ^(int a, int b) {
sum = a+b;
return 3;
};
myblocks3(20, 30);
NSLog(@"sum is %d", sum);
SumBlockT myblocks4 = ^(int a, int b) {
NSLog(@"c is %d", a+b);
return 0;
};
myblocks4(50, 20);
}
return 0;
}