// // main.m // block基本使用 // // Created by Ymmmsick on 15/7/21. // Copyright (c) 2015年 Ymmmsick. All rights reserved. // #import <Foundation/Foundation.h> typedef int (^IntBlock)() ; typedef void (^VoidBlock)(); int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"这个哥修改过的模版!"); //没有行参,没有返回值的block void (^testBlock)() = ^ { NSLog(@"Block---->Test"); NSLog(@"Block---->Test"); }; testBlock(); //有行参有返回值的block int (^sumBlock)(int,int) = ^(int a,int b){ return a+b; }; NSLog(@"sum is :%d",sumBlock(10,12)); //typedef IntBlock productBlock = ^(int a,int b){ return a * b; }; NSLog(@"product is :%d",productBlock(10,10)); /* Block访问外部变量 1.block内部可以访问外部的变量 2.默认情况下,block不能修改外部的变量 3.外部变量添加__block关键字,block内部就可以修改外部的变量 */ __block int a = 0; VoidBlock areaBlock = ^{ a = 10; NSLog(@"a = %d",a); }; areaBlock(); } return 0; }