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

做网站哪里有seo推广外包

做网站哪里有,seo推广外包,桂林手机网站建设,珠海做网站的公司有哪些dealloc不执行 如果一个类在释放过后,dealloc方法没有执行,那么就代表着这个类还被其他对象所引用,引用计数不为0,这样就造成了内存泄露 昨天其他业务线开发告知他所依赖的我这边的父类VC的-dealloc 方法不执行,叫我跟…

dealloc不执行

如果一个类在释放过后,dealloc方法没有执行,那么就代表着这个类还被其他对象所引用,引用计数不为0,这样就造成了内存泄露

昨天其他业务线开发告知他所依赖的我这边的父类VC的-dealloc 方法不执行,叫我跟一下

于是我很快的想到-dealloc没执行,肯定是循环引用内存泄露之类的问题,于是打开instrument,复现着触发步骤,一个红点,两个红点;嘿,就是你了,结果查找call trees过后就蒙蔽了,报错是jsonmodel的实例方法有问题,难道是某个子类化的JsonModel对象引用了这个VC? 但是这个类有接近两千行,我怎么看?

于是小组大神出场,其在使用了一番instrument过后,发现确实这个VC在释放过后引用计数不为0,但是从各个内存的使用情况啊,调用堆栈啊并看不出错误是出现在哪里(他说instrument改版后不太会用了),在得知我的业务需求过后,于是叫我去用最笨的办法去解决-- 把所有改动屏蔽掉,然后逐个取消屏蔽,看内存泄露在哪一个方法里面

于是尝试,定位,尝试,定位

最终找到循环引用的地方:

687493-20160922153739262-17999057.png


在block外面是把self指针置为weak了的,但是进入block过后,却是仍然使用的是强self指针去调用的本类方法,这样一来,便造成了经典的循环引用的问题:

self ---> block  block ---> self

于是VC里面就没办法释放掉,这就是造成VC的dealloc方法未能执行的原因


对于@weakify,@strongify的解释:

#define weakify(...) \\autoreleasepool {} \\metamacro_foreach_cxt(rac_weakify_,, __weak, __VA_ARGS__)#define strongify(...) \\try {} @finally {} \\_Pragma("clang diagnostic push") \\_Pragma("clang diagnostic ignored \\"-Wshadow\\"") \\metamacro_foreach(rac_strongify_,, __VA_ARGS__) \\_Pragma("clang diagnostic pop")

他们的作用主要是在block内部管理对self的引用:

 @weakify(self); // 定义了一个__weak的self_weak_变量 
[RACObserve(self, name) subscribeNext:^(NSString *name) { @strongify(self); // 局域定义了一个__strong的self指针指向self_weak self.outputLabel.text = name; 
}];

这两个宏一定成对出现,先weak再strong.可以很好的管理Block内部对self的引用。 当然你如果是一个不爱用黄色宏的盆友的话,你可以用原生代码写出来

    __weak typeof(self) weakSelf = self;self.Button.rac_command = [[RACCommand alloc] initWithEnabled:textSig signalBlock:^RACSignal *(NSString * input) {__strong typeof(weakSelf) strongSelf = weakSelf;return nil;}];

总结:

在使用instrument的过程中可能因为某些原因,检测不到具体的某个函数的内存泄露,这个时候就不能依赖instrument了(也可能是本渣不太懂怎么调,欢迎指正),这个时候就只能使用最笨的办法 --- 还原二分法来trick了

转载于:https://www.cnblogs.com/WayneLiu/p/5896611.html

http://www.lbrq.cn/news/2532277.html

相关文章:

  • 精美图片做网站上哪儿去找图链接买卖平台
  • 做网站asp网站策划书模板
  • 动态网站的工作流程360开户
  • 网站快速优化网站内部seo优化包括
  • 威海哪家网站做的好sem是什么
  • 内容营销的重要性内蒙古seo优化
  • 中煤矿山建设集团网站推广赚钱app哪个靠谱
  • 保定网站排名国内企业网站模板
  • 媒体门户网站建设方案如何设计网站步骤
  • 中国宁波新闻网引擎优化seo怎么做
  • 深圳龙岗网站建设公司朝阳网络推广
  • 建设安全监督站的网站小说网站排名前十
  • 百度怎么网站排名360推广怎么收费
  • 护肤网站模版快刷网站
  • 静态网站模板下载关键词seo优化
  • 网页设计网站概述怎么写seo推广网络
  • 新北网站建设引擎优化是什么意思
  • 外语网站制作如何做自己的网站
  • 仪征网站建设seo引擎优化外包公司
  • 外贸商城网站资质seo优化排名技术百度教程
  • 做网站什么职业廊坊网站推广公司
  • 做直播平台网站赚钱吗互联网销售平台
  • 假冒网站能通过备案登记吗电商网站建设公司哪家好
  • 昆明房地产网站建设百度引擎
  • 优秀国内个人网站网址sem推广软件选哪家
  • 宝鸡英文网站建设短视频矩阵seo系统源码
  • to a wordpress上海seo有哪些公司
  • 做金融网站看那些素材宁波优化网页基本流程
  • 杭州网站建设服务企业网站开发费用
  • 在哪个网站找婚照公司网络代运营推广
  • LoRA低秩适配的原理
  • 【源力觉醒 创作者计划】文心一言与deepseek集成springboot开发哪个更方便
  • 《嵌入式C语言笔记(十六):字符串搜索、动态内存与函数指针精要》
  • Python Day19 时间模块 和 json模块 及例题分析
  • 4.方法的使用
  • 让科技之光,温暖银龄岁月——智绅科技“智慧养老进社区”星城国际站温情纪实