使用 Arc,我有一个 CgImageRef 作为对象(形状)的属性。最终我会将 CgImageRef 分配给 1 层或更多层的内容,但最初我只是将其保留在形状中。如果我这样做,一切都会很好:
CgImageRef cgImageRef = CGImageCreateWithImageInRect(....);
someLayer.contents = (__bridge id)cgImageRef;
CFRelease(cgImageRef);
但如果我说
myShape.cgImageRef = CGImageCreateWithImageInRect(...);
分析器报告潜在的内存泄漏。
我尝试在 ShapeObject 中添加一个在 cgImageRef 上使用 CFRelease 的 dealloc 方法,但随后分析器说我正在释放一个我不拥有的对象。桥接似乎不适用,因为我没有将指针分配给另一个对象。我到底应该在这里做什么?