美文网首页
2018-04-19

2018-04-19

作者: iOS打怪升级 | 来源:发表于2018-04-19 13:39 被阅读4次
第六章:块与大中枢派发
37. 理解块的概念

全局块,栈块,堆块,内联块。 全局块:不会捕获任何状态,运行时也无需有状态参与,所使用的内存区域在编译期已经确定,因此可以声明在全局区,全局块不可能被系统回收,相当于一个单例

void (^block) = {
        NSLog(@"this is a global  block ");
};

块是一个值 ,块会将捕获的所有变量都拷贝一份,捕获了多个就占用多少的空间,拷贝的是指向对象的指针变量;默认情况下,块获取的变量是不可以,是不可以在块内部修改的,除非对变量用 __block 修饰符修饰

38. 为常用的块类型创建typedef
块声明:返回值类型 (^变量名/块名)(参数列表)
void(^DownloadFinishedBlock)(NSData * data , NSError * error);

赋值:
void(^DownloadFinishedBlock)(NSData * data , NSError * error) = ^(NSData *data ,NSError * error){
      //doSomething
};

传参:
- method:(块参数列表)块名
- (void)startDownLoad:(NSData * data , NSError * error)completion;

typedef 返回值类型 (^类型别名)(参数列表);
typedef void(^DownloadFinishedBlock)(NSData * data , NSError * error);

赋值:
DownloadFinishedBlock block = ^(NSData *data ,NSError * error){
      //doSomething
};

传参:
- method:(块类型名)块名
- (void)startDownLoad:(DownloadFinishedBlock)completion;

调用:
[self startDownLoad:^(NSData * data , NSError * error){
     //doSomething
}];


总结:使用方便,方便修改参数,易于维护

相关文章

  • 2018-04-19

    2018-04-19 ZFQ_dacf 2018-04-19· 字数 463· 阅读 49· 日记本 姓名:周富强...

  • Centering in CSS: A Complete Gui

    title: Centering in CSSdate: 2018-04-19 01:29:00tags: CSS...

  • 生词合集

    2018-04-19 go straight: 洗心革面straight /streɪt/: adj. 直的;正直...

  • mybatis typeHandler自定义类型转换器使用

    实体类 typehandler config.xml中 完配置 mapper.xml 测试 2018-04-19 ...

  • Jacman基于Pacman修改的Hexo主题

    title: Jacman基于Pacman修改的Hexo主题date: 2018-04-19 17:11:20ca...

  • 木兰花·舒同之歌

    2018-04-19 ——岁月如歌诗词选(第二集·27) 看2018...

  • 2018-04-19

    2018-04-19 180 戴师傅 简书作者 2018.04.19 20:50 打开App (稻盛哲学学习会)打...

  • 近段随感

    近段随感 全能lady云飞 2018-04-19 22:53 · 字数 914 · 阅读 0 · 日记本 早读不需...

  • 木兰花

    2018-04-19 ——岁月如歌诗词选(第二集·73) 读王玉明《人生回眸—...

  • 2018-05-07

    比贫穷更可怕的,是缺乏这3样东西 麦大人 关注 2018-04-19 12:21 · 字数 2474 · 阅读 5...

网友评论

      本文标题:2018-04-19

      本文链接:https://www.haomeiwen.com/subject/ctrwkftx.html