HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – 为什么自我保留在访问其中一个属性的块中?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在下面的代码中,self被保留以确保在调用块时图像对象存在.这就是文档所说的.但是,我似乎不明白为什么.简单地保留图像可以保证它不会被解除分配.那么为什么要保住自己呢?

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

如果您直接访问图像,这是否适用?

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

解决方法

块需要保留块中的任何捕获对象.你的第一个例子是:

self.finishBlock = ^{
    [[self image] setHidden:YES];
}

该块必须保留self,以便正确调用image方法.如所写的,块不能简单地保留图像,因为直到执行块并且调用图像方法才获得图像.所以这里唯一的选择就是保持自我.

在第二个区块你真的有:

self.finishBlock = ^{
    self->_image.hidden = YES;
}

所以,必须保留self,以便在实际执行块时访问_image ivar的正确值.

大佬总结

以上是大佬教程为你收集整理的iphone – 为什么自我保留在访问其中一个属性的块中?全部内容,希望文章能够帮你解决iphone – 为什么自我保留在访问其中一个属性的块中?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: