nop*_*ole 1 core-animation core-graphics ios automatic-ref-counting cgcontextref
因为如果运行Instruments并选择了活动监视器,则在iPhone 4S上运行的应用程序在发布上下文时使用4.88MB,如果未发布上下文,则使用4.88MB .这是否意味着释放上下文是可选的?(我认为实际上是必需的).上下文由CGContextRef变量引用.(正在使用ARC).
CGBitmapContext为Retina显示器创建了上下文,因此大约640 x 640,并且有4个这样的上下文,它们都是在中创建的viewDidAppear,我认为如果1个像素是4个字节,那么每个上下文已经是1.6MB.可能是在viewDidAppear完成后,上下文会自动释放?基本上,我CGImage从那些位图上下文生成对象并将CGImage对象设置为由对象指向CALayer(使用layer.contents = (__bridge id) cgImage;),因此不再需要位图上下文.它使用Xcode 4.3编译,使用ARC,并针对iOS 4.3.(但我认为CGContextRef不是ARC的一部分).
更新:更正:应该是"从那些CGBitmapContext生成CGImage对象,并将这些CGImage对象设置为CALayer"(编辑原始问题以反映这一点).
释放CGContextRef不是可选的,但您应该知道是否需要释放它.它遵循标准的手动内存管理规则.如果您拥有所有权(分配,创建,保留和其他一些),您必须释放所有权(发布).如果您在没有所有权时发布,则会过度发布.
您可能看到的是,即使在您释放了对象之后,其他人也会保留它.它可能是您的视图层次结构中的某些内容.释放所有权后未释放的对象通常不是问题.
| 归档时间: |
|
| 查看次数: |
1659 次 |
| 最近记录: |