Blocks自测

Test 1

Example A
void exampleA() {
  char a = 'A';
  ^{
    printf("%c\n", a);
  }();
}
1、always works ?
2、only works with ARC ?
3、only works without ARC ?
4、never works ?

Example B
void exampleB_addBlockToArray(NSMutableArray *array) {
  char b = 'B';
  [array addObject:^{
    printf("%c\n", b);
  }];
}
void exampleB() {
  NSMutableArray *array = [NSMutableArray array];
  exampleB_addBlockToArray(array);
  void (^block)() = [array objectAtIndex:0];
  block();
}
1、always works ?
2、only works with ARC ?
3、only works without ARC ?
4、never works ?

Example C
void exampleC_addBlockToArray(NSMutableArray *array) {
  [array addObject:^{
    printf("C\n");
  }];
}
void exampleC() {
  NSMutableArray *array = [NSMutableArray array];
  exampleC_addBlockToArray(array);
  void (^block)() = [array objectAtIndex:0];
  block();
}
1、always works ?
2、only works with ARC ?
3、only works without ARC ?
4、never works ?

Example D
typedef void (^dBlock)();
dBlock exampleD_getBlock() {
  char d = 'D';
  return ^{
    printf("%c\n", d);
  };
}
void exampleD() {
  exampleD_getBlock()();
}
1、always works ?
2、only works with ARC ?
3、only works without ARC ?
4、never works ?

Example E
typedef void (^eBlock)();
eBlock exampleE_getBlock() {
  char e = 'E';
  void (^block)() = ^{
    printf("%c\n", e);
  };
  return block;
}
void exampleE() {
  eBlock block = exampleE_getBlock();
  block();
}
1、always works ?
2、only works with ARC ?
3、only works without ARC ?
4、never works ?

题目来自parse的博文 http://blog.parse.com

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,860评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,004评论 25 708
  • 一只丑陋的毛毛虫,只要用茧包缚住自己,忍受二十多天蛹的束缚,便能蜕变成一只绝美的蝴蝶。 七天前的我们,就好比一只...
    北望南潇阅读 424评论 2 8
  • 就像我们开始喜欢回到田野一样,我们似乎又回到了一个教育要回归自然的时代。 而这一次的回归与卢梭所倡导的自然教育还有...
    大望哥哥阅读 672评论 0 1
  • 在storyboard或xib中ViewController和View通过IB绑定的控件初始化顺序是不一样的。在V...
    noonez阅读 896评论 0 0