文件名称:RDRIntermediateTarget:防止由NSTimer,NSThread或CADisplayLink实例引起的保留周期的替代方法
文件大小:22KB
文件格式:ZIP
更新时间:2024-06-04 23:40:52
Objective-C
RDRIntermediateTarget 一个项目,演示如何使用Objective-C的消息传递功能来防止由于与NSTimer , NSThread或CADisplayLink实例进行交互而导致的保留周期。 介绍 您可能已经知道, NSTimer , NSThread和CADisplayLink实例保留其目标。 如果目标也保留这些类之一的实例,则我们有一个保留周期:目标和实例都不会被释放。 您为什么要保留这些类之一的实例? 假设您有某种需要使用CADisplayLink实例的视图动画。 动画完成后,就不再需要CADisplayLink实例,应该暂停该实例,以防止您的应用占用资源。 为了暂停它,您将不得不保留对其的引用。 在这一点上,您可能会感到奇怪:为什么不保留对实例的弱引用而不是对实例的强引用? 这不能解决我们所有的问题吗? 答案是否定的,因为它不会改变保留目标的事实。 例如,对
【文件预览】:
RDRIntermediateTarget-master
----RDRIntermediateTarget()
--------RDRIntermediateTarget.h(1KB)
--------RDRIntermediateTarget.m(3KB)
----.gitignore(237B)
----README.md(3KB)
----RDRIntermediateTargetExample()
--------RDRIntermediateTargetExample()
--------RDRIntermediateTargetExample.xcodeproj()
--------RDRIntermediateTargetExampleTests()
----LICENSE(1KB)
----RDRIntermediateTarget.podspec(624B)