我这里有内存管理问题吗?

时间:2010-03-11 12:39:22

标签: iphone memory-management core-graphics quartz-graphics quartz-2d

这段代码肯定有问题:

+ (UIImage*)captureView:(UIView *)theView {
    UIGraphicsBeginImageContext(theView.frame.size);
    [theView.layer renderInContext:UIGraphicsGetCurrentContext()];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
}

当我使用它时,Xcode会抛出此错误消息:

  

malloc: *对象的错误   0x103f000:被释放的指针不是   分配   * 在malloc_error_break中设置断点以进行调试

我看不到任何内存管理错误。还有其他人吗?

2 个答案:

答案 0 :(得分:1)

我有同样的警告。但是,它不会发生在3.1或更高版本中。

答案 1 :(得分:0)

别看。在构建中启用NSZombie以对其进行跟踪。

它可能与从类方法返回自动释放的UIImage有关,该方法可能位于临时自动释放池中。该池的排水可能会破坏图像。要进行测试,请将方法移动到实例方法,然后查看问题是否消失。