美文网首页工作生活
项目中遇到不走-(void)dealloc{}的情况总结

项目中遇到不走-(void)dealloc{}的情况总结

作者: 本客 | 来源:发表于2019-07-03 10:50 被阅读0次

不走dealloc事件很严重的问题,必须认真对待,不走dealloc说明内存没有释放,会导致Memory使用越来越高,严重会导致页面卡顿,更严重导致页面卡死甚至闪退。

情况一:使用了NSTimer,没有手动销毁

情况二:delegate,没有使用weak修饰

情况三: block内使用self,没使用weakSelf

情况四:对象被其他对象持有

情况五:是MJRefresh的坑,没有找到原因

之前使用:footerWithRefreshingBlock,声明上拉加载的方法,导致控制器始终不走dealloc

比如这样写:

self.baseTabelView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{            weakSelf.baseCurrentPage++;        

    [weakSelf getDataListFromServerWithurl:urlStr params:paramsDic PageSize:weakSelf.pageSize Page:weakSelf.baseCurrentPage];   

     }];

但是改为:footerWithRefreshingTarget后正常了,一直没有找到原因。

改为:

self.baseTabelView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(loadMore)];

这样就能正常执行-(void)dealloc{}方法。

相关文章

网友评论

    本文标题:项目中遇到不走-(void)dealloc{}的情况总结

    本文链接:https://www.haomeiwen.com/subject/cutqhctx.html