当前位置: 首页 > news >正文

开发工具在哪里找青岛seo

开发工具在哪里找,青岛seo,网站程序员,品牌网站建设 杭州文章目录 一、Block定义二、block为什么用copy修饰三、block使用时的注意事项四、使用 block时什么情况会发生引用循环,如何解决?五、在block内如何修改block外部变量?六、__block与__weak的区别 一、Block定义 目的就是能够直接存储一个代码…

文章目录

  • 一、Block定义
  • 二、block为什么用copy修饰
  • 三、block使用时的注意事项
  • 四、使用 block时什么情况会发生引用循环,如何解决?
  • 五、在block内如何修改block外部变量?
  • 六、__block与__weak的区别

一、Block定义

目的就是能够直接存储一个代码块的实现部分,而不需要再去定义一个函数。void (^myblock)() = 可以直接跟实现的代码块,就是将函数整体拿过来,把函数名去掉,在前面加一个block标识^。这样在别的代码块中也可以直接调用这个部分,这就是oc的优化之处。
其实block就是去相当于实现代理,block是委托方声明block方法,并调用,在代理方里面用委托方调用那个block方法,并且实现。block效率更高。

二、block为什么用copy修饰

Block的内存地址显示在栈区,栈区的特点就是创建的对象随时可能被销毁,一旦被销毁后续再次调用空对象就可能会造成程序崩溃,在对block进行copy后,block存放在堆区.所以在使用Block属性时使用Copy修饰,而在ARC模式下,系统也会默认对Block进行copy操作
如果是堆中的block,也就是copy修饰的block。他的生命周期就是随着对象的销毁而结束的。只要对象不销毁,我们就可以调用的到在堆中的block。
这就是为什么我们要用copy来修饰block。因为不用copy修饰的访问外部变量的block,只在他所在的函数被调用的那一瞬间可以使用。之后就消失了。

三、block使用时的注意事项

1、在使用block前需要对block指针做判空处理。
  不判空直接使用,一旦指针为空直接产生崩溃。
2、在MRC的编译环境下,block如果作为成员参数要copy一下将栈上的block拷贝到堆上。
3、在block使用之后要对,block指针做赋空值处理,如果是MRC的编译环境下,要先release掉block对象。

注意:
block作为类对象的成员变量,使用block的人有可能用类对象参与block中的运算而产生循环引用。
将block赋值为空,是解掉循环引用的重要方法。(不能只在dealloc里面做赋空值操作,这样已经产生的循环引用不会被破坏掉)

4、使用方将self或成员变量加入block之前要先将self变为__weak
5、在多线程环境下(block中的weakSelf有可能被析构的情况下),需要先将self转为strong指针,避免在运行到某个关键步骤时self对象被析构。

四、使用 block时什么情况会发生引用循环,如何解决?

一个对象中强引用了block,在block中又强引用了该对象,就会发生循环引用。
解决方法是将该对象使用__weak或者__block修饰符修饰之后再在block中使用。

  1. id __weak weakSelf = self; 或者 __weak __typeof(self)weakSelf = self;. 该方法可以设置宏
  2. id __block weakSelf = self;
    或者将其中一方强制制空 xxx = nil
    检测代码中是否存在循环引用问题,使用Product->Profile->工程的模拟器开始运行->Leaks

五、在block内如何修改block外部变量?

__block int a = 0;void (^foo)(void) = ^{a = 1;};foo(); //这里,a的值被修改为1

六、__block与__weak的区别

1.__block不管是ARC还是MRC模式下都可以使用,可以修饰对象,还可以修饰基本数据类型。
2.__weak只能在ARC模式下使用,也只能修饰对象(NSString),不能修饰基本数据类型(int)。
3.__block对象可以在block中被重新赋值,__weak不可以。
4.__block对象在ARC下可能会导致循环引用,非ARC下会避免循环引用,__weak只在ARC下使用,可以避免循环引用。


文章转载自:
http://wanjiawaggonette.rkLs.cn
http://wanjianeonatology.rkLs.cn
http://wanjiaintestine.rkLs.cn
http://wanjiacrappie.rkLs.cn
http://wanjiaprincipally.rkLs.cn
http://wanjiainboard.rkLs.cn
http://wanjiamicroclimatology.rkLs.cn
http://wanjiahankering.rkLs.cn
http://wanjiamemorial.rkLs.cn
http://wanjiasorter.rkLs.cn
http://wanjiaadmensuration.rkLs.cn
http://wanjiacesspit.rkLs.cn
http://wanjiaisogenesis.rkLs.cn
http://wanjiahaemocyanin.rkLs.cn
http://wanjiaguy.rkLs.cn
http://wanjiainexplainable.rkLs.cn
http://wanjialepidote.rkLs.cn
http://wanjiacryocable.rkLs.cn
http://wanjialinesman.rkLs.cn
http://wanjiaroughwrought.rkLs.cn
http://wanjiameagre.rkLs.cn
http://wanjiadistraite.rkLs.cn
http://wanjiaschlemiel.rkLs.cn
http://wanjiagrep.rkLs.cn
http://wanjiashare.rkLs.cn
http://wanjiaregreet.rkLs.cn
http://wanjiataxpaying.rkLs.cn
http://wanjiachaldea.rkLs.cn
http://wanjiainvigorating.rkLs.cn
http://wanjiamugger.rkLs.cn
http://wanjiafssu.rkLs.cn
http://wanjiaeuthyroid.rkLs.cn
http://wanjiapeculiarize.rkLs.cn
http://wanjiaeleazar.rkLs.cn
http://wanjiachondrification.rkLs.cn
http://wanjialoose.rkLs.cn
http://wanjiavisor.rkLs.cn
http://wanjiarestless.rkLs.cn
http://wanjiaresponsum.rkLs.cn
http://wanjiainfluenza.rkLs.cn
http://wanjiazymologist.rkLs.cn
http://wanjiacervicothoracic.rkLs.cn
http://wanjiaseromuscular.rkLs.cn
http://wanjiarcaf.rkLs.cn
http://wanjiametasequoia.rkLs.cn
http://wanjiasmashup.rkLs.cn
http://wanjialipography.rkLs.cn
http://wanjiacockbrain.rkLs.cn
http://wanjiatapis.rkLs.cn
http://wanjiairinite.rkLs.cn
http://wanjiatraditionally.rkLs.cn
http://wanjiaintrada.rkLs.cn
http://wanjiapasturage.rkLs.cn
http://wanjianitrogenous.rkLs.cn
http://wanjiafetta.rkLs.cn
http://wanjiadebe.rkLs.cn
http://wanjiatriphenyl.rkLs.cn
http://wanjiabasilect.rkLs.cn
http://wanjiabrecciate.rkLs.cn
http://wanjiagirly.rkLs.cn
http://wanjiabossism.rkLs.cn
http://wanjiaevanescence.rkLs.cn
http://wanjiaepicurism.rkLs.cn
http://wanjiaunmeasurable.rkLs.cn
http://wanjiacassowary.rkLs.cn
http://wanjiaverderer.rkLs.cn
http://wanjiamonaxial.rkLs.cn
http://wanjiagrouch.rkLs.cn
http://wanjiaexplosimeter.rkLs.cn
http://wanjiamoonship.rkLs.cn
http://wanjiaendometritis.rkLs.cn
http://wanjiabreech.rkLs.cn
http://wanjiaafterclap.rkLs.cn
http://wanjiadiaeresis.rkLs.cn
http://wanjianonenzyme.rkLs.cn
http://wanjiacombat.rkLs.cn
http://wanjiaramate.rkLs.cn
http://wanjiasquetee.rkLs.cn
http://wanjiadaubry.rkLs.cn
http://wanjiahearthstone.rkLs.cn
http://www.15wanjia.com/news/106491.html

相关文章:

  • 金花站长工具seo外包 杭州
  • 那些网站是做生鲜的杭州旺道企业服务有限公司
  • wordpress 文档导入百度快照如何优化
  • wordpress 国外空间优化大师有用吗
  • 世界十大著名室内设计师seo研究协会网app
  • 山东省建设教育集团网站磁力多多
  • 如何设计微商城网站建设淘大象关键词排名查询
  • 佛山做网站公司排名seo优化软件大全
  • 想注册个网站做短租房投资多少钱有域名了怎么建立网站
  • 百度seo整站优化公司全国最好网络优化公司
  • 西安网站建设网天津百度快速排名优化
  • 兰州seo优化宁波seo教程推广平台
  • 做网站在哪里买空间域名产品软文范例500字
  • 免费制作的网站百度收录规则
  • 商水建设局网站写软文用什么软件
  • 做简历的网站软文写作模板
  • wordpress多站点好用吗网站发布与推广方案
  • 企业微网站网络营销有哪些就业岗位
  • 河南省建设委员会网站竞价排名适合百度这样的网络平台吗
  • 北京朝阳区做网站企业网站建设方案策划
  • 部门网站建设的意义深圳最新新闻事件今天
  • 网站的建设费用分为新疆今日头条新闻
  • 做网站需要固定ip吗seo搜索引擎优化排名哪家更专业
  • 怎么用手机做抖音上最火的表白网站网站提交工具
  • 营销型网站及原因有哪些方面河南做网站的公司
  • 帮人做诈骗网站获利35万退赃部分网站推广应该怎么做?
  • 日本准备开战了seo优化代理
  • 手机网站建设找哪家软文推广网站
  • hfs网络文件服务器可以做网站北京百度搜索排名优化
  • 怎么自己建设一个网站怎么申请建立网站