您当前的位置: 首页 >  ios

iOS间接循环引用造成内存泄漏一例

发布时间:2019-05-28 10:32:16 ,浏览量:0

大家对iOS代码中的循环引用导致内存泄漏都很了解,本博试图进一步完善和补充这一主题,谈谈间接循环引用造成泄漏的问题。

直接内存泄漏

直接内存泄漏是显而易见的,你不发现都难,举个例子:

class RootView:UIView{
	var timeCounterView:TimeCounterView?

    func pauseOrGoOnTimer() {...}
    func resetTimer() {...}
}

class TimeCounterView:UIView{
	 var timerDidModifiedCallback:((TimerModfiyAction)->Void)?
}

现在RootView里有一个initView()方法,用来初始化,里面需要设置timeCounterView的回调:

func initView(){
	 timeCounterView =  CounterView.create(with: cu)
	 if let timeCV = timeCounterView{
		timeCV.timerDidModifiedCallback = {action in
			self.otherSetupInvoke()

			switch action{
             case .puaseOrGoOn:
                 // 当计时暂停或继续时,执行对应的操作
                 timeCV.pauseOrGoOnTimer()
             case .reset:
                 // 当计时取消或完成时重置计时器
                 timeCV.resetTimer()
             }
		}
	}
}

首先

关注
打赏
1688896170
查看更多评论

暂无认证

  • 0浏览

    0关注

    110090博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.1780s