美文网首页循环引用
iOS中常见的循环引用

iOS中常见的循环引用

作者: 身体和灵魂总有一个在路上 | 来源:发表于2020-05-11 13:47 被阅读0次

1. addTarget:   ,addObserver:  等所有需要传递self的方法都要注意,尤其是self用作代理的时候要注意。

例如:[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reopenSession:) name:kNeedReopenSession object:nil];

2.wkwebview:  [userContentController addScriptMessageHandler:self name:@"backHomeClick_test”];需要调用removeScriptMessageHandlerForName方法,否则会循环引用

使用WebViewJavascriptBridge时,[self.bridge registerHandler:@"closeActivity" handler:^(id data,WVJBResponseCallback responseCallback){},viewDidDisappear时需要调用removeHandler:否则会循环引用

3.UIAlertController的事件里使用alert ,注意要使用__weak typeof(alertController)weakAlert = alertController,否则会循环引用。

4. 代理要用weak修饰,@property(nonatomic,weak)id delegate;否则容易引起循环引用。

6.block里面使用self时,使用  weakself  strongSelf。

7.NStimer的使用时注意销毁。 

 例:-(void)viewDidDisappear:(BOOL)animated{

    [super viewDidDisappear:animated];

    if(![self.navigationController.viewControllers containsObject:self]){

   请在这里销毁timer}}

8.把self加入到NSArray中,也容易引起循环引用

9.A类别中动态添加属性p,如果属性p应用A,容易造成循环引用。

检测循环引可以引入第三方框架:MleaksFinder。

以上为本人项目中遇到的循环引用情况,如果你有循环引用方面的经验,欢迎留言分享。

相关文章

  • 一个奇怪且无聊的检测Block的想法

    在大多数iOS应用开发过程中, 循环引用一直都是最常见的iOS开发问题之一。通常情况下, 最常见的循环引用问题就是...

  • 如何在 iOS 中解决循环引用的问题

    如何在 iOS 中解决循环引用的问题 如何在 iOS 中解决循环引用的问题

  • iOS开发中的循环引用

    循环引用的实质是,多个对象之间相互强引用,导致不能释放,让系统回收。iOS开发中常见的循环引用主要是由Delega...

  • iOS复习之Block

    iOS面试中如何优雅回答Block iOS block循环引用

  • weak-strong dance探究

    循环引用 循环引用是iOS开发常见的问题,虽然现在普遍是ARC工程,但是这个问题仍然无可避免。一般都是两个强引用对...

  • Block循环引用的四种解决方案

    Block常见的循环引用模型 以下是常见的Block循环引用模型,self引用block,block引用self,...

  • IOS 常见循环引用问题

    问题出现描述当多个对象相互持有形成一个封闭的环时,循环引用问题随之出现,导致内存泄漏。 常见几种循环引用总结1、代...

  • iOS之常见循环引用

    循环引用:(大家都知道我们OC内存管理采用引用计数机制,可自行了解)A->B , B->A ,导致无法释放就造成了...

  • iOS闭包循环引用精讲

    iOS闭包循环引用精讲 iOS闭包循环引用精讲

  • iOS中常见的循环引用

    1. addTarget: ,addObserver: 等所有需要传递self的方法都要注意,尤其是self用作...

网友评论

    本文标题:iOS中常见的循环引用

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