block做属性的时候记得用copy,block的本质是结构体。
@property (nonatomic, copy) void(^myblock)();
//1 block的第一种形式 NSGlobalBlock 全局block 根函数一样 存储在代码区
// void (^myblock)() = ^{
// NSLog(@"hello");
// };
//
// NSLog(@"%@",myblock);
//block的本质是结构体
//2 block的第二种形式 NSStackBlock 栈block 存储在栈上
// __block int n = 5;
// void (^myblock)() = ^{
// n = 6;
// NSLog(@"hello");
// NSLog(@"%d",n);
// };
//
// NSLog(@"%@",myblock);
//3 block的第三种形式 NSMallocBlock 堆blcok 存储在堆上 对栈block做一次copy操作
// __block int n = 5;
// void (^myblock)() = ^{
// n = 6;
// NSLog(@"hello");
// NSLog(@"%d",n);
// };
// NSLog(@"%@",[myblock copy]);