block捕获变量的几道测试题

第一题

    NSInteger age = 20;
    void(^block)() = ^(){
        NSLog(@"%li",age);//打印的值为几
    };
    age = 40;
    block();

第二题

    SCPerson *person = [[SCPerson alloc]init];
    person.age = 20;
    void(^block)() = ^(){
        NSLog(@"%li",person.age);//打印的值为几
    };
    person.age = 40;
    block();

第三题

    SCPerson *person = [[SCPerson alloc]init];
    person.age = 20;
    void(^block)() = ^(){
        NSLog(@"%li",person.age);//打印的值为几
    };
    person = [[SCPerson alloc]init];
    person.age = 40;
    block();

第四题

    SCPerson *person = [[SCPerson alloc]init];
    person.age = 20;
    __weak SCPerson *weakPerson = person;
    void(^block)() = ^(){
        NSLog(@"%li",weakPerson.age);//打印的值为几
    };
    person = [[SCPerson alloc]init];
    person.age = 40;
    block();

第五题

    SCPerson *person = [[SCPerson alloc]init];
    person.age = 20;
    __weak SCPerson *weakPerson = person;
    void(^block)() = ^(){
        __strong SCPerson *strongPerson = weakPerson;
        NSLog(@"%li",strongPerson.age);//打印的值为几
    };
    person = [[SCPerson alloc]init];
    person.age = 40;
    block();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如果你在不经意间推开历史的门,走进去,停步于三百多年前,你会蓦然间看到两个身影,孤寂而清俊,冷落而优雅,他们就像是...
    些个明月清风阅读 3,793评论 0 0
  • 想一个人没有边际, 也不知道他在哪里? 三月用雨叫醒了干枝, 红梅沾染着新的泪水, 高楼即将把天空割去, 小溪荡漾...
    舒严阅读 968评论 0 0
  • 今天还能写,说实话我都要佩服我自己了。困,累,是今天唯一的两个感官,而这才只是刚刚开始。 上课什么的我就不说了,有...
    欧尼白小溪阅读 1,898评论 0 0