关于在block中保留的self访问属性问题 -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

关于在block中保留的self访问属性问题

2016-03-26 08:30:05 1701 1

根据说明文件,在下面的代码中,保留self是用来保证在block调用时,图片对象运行。但是,我不太明白,单单保存图片就可以保证它不会消失,那么为什么还要保留self呢?

self.finishBlock = ^{
    self.image.hidden = YES;
}

是不是在直接访问图片的时候适用的?

self.finishBlock = ^{
    _image.hidden = YES;
}
取消 提交回答
全部回答(1)
  • 爵霸
    2019-07-17 19:15:05

    block需要保留block中任何捕获到的对象。你的第一个block例子就是:
    `
    self.finishBlock = ^{

    [[self image] setHidden:YES];

    }
    `

    block需要保留self,这样才能正确调用方法,由于block不能单纯的保留图片,因为只有在block执行,图片方法被调用时才能捕获到图片,所以唯一的办法就是保留self。

    所以在第二个block例子中:
    `
    self.finishBlock = ^{

    self->_image.hidden = YES;

    }
    `

    重申一遍,self必须保留,这样block执行的时候,才能访问_image ivar正确的值

    0 0
相关问答

1

回答

求教各位大佬 mysql 5.7为啥会连不上呢? binlog和授权都有 8.0版本就可以

2022-09-28 08:42:03 19浏览量 回答数 1

1

回答

parition和block有什么关联关系?

2021-12-06 00:36:34 93浏览量 回答数 1

1

回答

partition和block有什么关联?

2021-12-07 22:08:12 68浏览量 回答数 1

1

回答

关于flink sql往postgres写数据遇到的timestamp问题

2021-12-06 12:13:54 621浏览量 回答数 1

1

回答

flink1.10.2 读取mysql并打印数据,本地可以执行,yarn上报错,什么原因呢

2021-12-02 14:57:24 380浏览量 回答数 1

1

回答

MySQL 选择题 关于数据库管理系统说法正确的是( )

2019-12-23 19:00:30 544浏览量 回答数 1

2

回答

关于开放平台绑定企业号问题

2016-04-28 15:29:08 2932浏览量 回答数 2

1

回答

java 关于sock通信问题 serverSocket.accept()阻塞

2016-03-19 14:08:22 6628浏览量 回答数 1

1

回答

关于mysql server/share版本的问题

2016-02-05 15:16:37 2010浏览量 回答数 1

1

回答

关于将utf-8的数据库转换成GBK的问题

2016-02-08 00:37:34 2471浏览量 回答数 1
+关注
2
文章
9426
问答
问答排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载