我很好奇我是否正在使用 CGImageRef 进行正确的内存管理,我正在通过几种方法(因为它是 CG 对象,我假设它不支持自动释放)。非 NSObjects 的内存管理以及与其他 NSObjects 的交互对我来说仍然有些新鲜。
这是我在做什么:
我正在使用 CGBitmapContextCreateImage(保留计数 1)在我的图像缓存管理器中创建 CGImageRef,并将其添加到 NSMutableDictionary(保留计数 2)。
当 CALayers 使用图像时,我使用 layer.contents(保留计数 +1)进行分配,并在删除图层之前使用 layer.contents = nil(保留计数 -1)清除内容。
最后,在清除纹理时,我调用 CGImageRefRelease 和 [NSMutableDictionary removeObject] 将保留计数设为 0。
这是这样做的正确方法吗?