#import <Foundation/Foundation.h>函數
typedef void(^blockType)();spa
//1)代碼在ARC中.net
// 運行結果 VVVV i = 5,3d
//2) 代碼在MRC中orm
// 運行結果 VVVV i = 5,可是用analyze分析,return bb;有內存泄露。MRC下bb是棧block,bb在方法執行完成以後會被銷燬掉內存
// 定義返回值是block類型的函數get
blockType test() {io
int i = 5;class
blockType bb = ^{test
NSLog(@"VVVV i = %d",i);
};
//return bb;
return Block_copy(bb); // copy拷貝一份block,bb位於堆區。
}
int main(int argc, const char * argv[]) {
//接收test的返回值
blockType b1 = test();
b1();
Block_release(b1);
}
return 0;
}