block的三种形式

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]);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 《Objective-C高级编程》这本书就讲了三个东西:自动引用计数、block、GCD,偏向于从原理上对这些内容...
    WeiHing阅读 9,950评论 10 69
  • Block基础回顾 1.什么是Block? 带有局部变量的匿名函数(名字不重要,知道怎么用就行),差不多就与C语言...
    Bugfix阅读 6,811评论 5 61
  • 前言 Blocks是C语言的扩充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了这...
    小人不才阅读 3,791评论 0 23
  • 一、Objective-C发展史 Objective-C从1983年诞生,已经走过了30多年的历程。随着时间的推移...
    没事蹦蹦阅读 5,923评论 12 34
  • “关东煮,日语本名御田,是一种源自日本关东地区的料理。通常材料包括鸡蛋、萝卜、土豆、海带、蒟蒻、鱼丸、竹轮(鱼肉或...
    食者说阅读 1,017评论 0 1