程序接收信号:“0”。警告:check_safe_call:无法恢复当前帧

时间:2010-02-17 14:12:23

标签: iphone iphone-sdk-3.0

我在我的应用程序上收到此错误

Program received signal:  “0”.
warning: check_safe_call: could not restore current frame

我还启用了Zombie,但它没有显示任何有关内存损坏的信息,并显示上述错误。

如何解决此错误?

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

您能否提供更多信息?从XCode启动应用程序时是否会发生此错误?在iPhone上还是在模拟器中?该应用程序是否显示任何内容或在启动时崩溃?

也许您需要分配大量内存,iPhone OS会强制退出您的应用程序。它是否发生在模拟器中?

表达式窗口与此错误Link to forum thread

之间似乎也存在关联

答案 1 :(得分:0)

尝试重新启动iphone以清除它的内存并重启你的开发机器,构建清理所有目标,看看是否有帮助

答案 2 :(得分:0)

当在UIImageview中快速更改图像时,我遇到了这个问题。

使用乐器中的对象分配工具,我看到内存快速增加直到它破裂。我通过实施双重检查:

- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application

在我的主要。

至少就我而言,这是一个内存管理问题。

我使用的是[UIImage image Named:],这是一个自动释放的UIImage。用户无法释放它并导致指定的问题。我通过以编程方式对所有相关对象实现分配和发布来修复此问题。

我更新UIImageView图像的示例代码:

-(void) updateImage{
    CGRect rect=CGRectMake(0, 0, 320, uiviewsimage.frame.origin.y);
    NSObject *img2=CGImageCreateWithImageInRect(uiviewsimage.CGImage, rect);
    UIImage *newImage = [[UIImage alloc] initWithCGImage:img2];
    [img2 release];

    [myImageView setFrame:rect];
    [myImageView setImage:newImage];

    [newImage release];
}

希望这有助于某人。