//// main.m// block基本使用//// Created by Ymmmsick on 15/7/21.// Copyright (c) 2015年 Ymmmsick. All rights reserved.//#importtypedef 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;}