【问题标题】:CALayer renderInContext: causing unknown crashCALayer renderInContext:导致未知崩溃
【发布时间】:2012-03-11 03:49:28
【问题描述】:

整个代码块由以下部分组成:

    CGSize layerSize = [webview sizeThatFits:CGSizeZero];

    if ([UIScreen instancesRespondToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0f) {
        UIGraphicsBeginImageContextWithOptions(layerSize, NO, 2.0f);
    } 
    else {
          UIGraphicsBeginImageContext(layerSize);
    }

    [webview.layer renderInContext:UIGraphicsGetCurrentContext()];

    screenshot = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

但经过测试,这行是导致问题的行:

    [webview.layer renderInContext:UIGraphicsGetCurrentContext()];

应用程序在控制台中没有列出原因而崩溃,并且使用 @try @catch @finally 没有任何结果。我在 AppDelegate.h 中导入了 Quartzcore,如果这与它有关的话。该应用在模拟器中运行良好,但在真机上运行时崩溃。

【问题讨论】:

  • 因什么而崩溃?控制台是否打印任何内容?是 EXC_BAD_ACCESS、SIGABRT 还是 NSExceptionThrow?
  • 控制台不打印任何内容,Xcode 中也没有弹出任何内容。我对正在发生的事情完全感到困惑,所以我想知道我是不是做错了什么。
  • 嗨,你找到解决方案了吗,我也有同样的问题?如果有,请分享解决方案

标签: ios iphone calayer quartz-core


【解决方案1】:

@Greg:似乎是设备上的内存溢出问题,因为设备受内存限制,而模拟器以不同的内存配置运行,我遇到了同样的问题 - 这可能发生在长网页上,有什么办法解决吗?

在实际设备(iphone 视网膜或非视网膜)崩溃之前,有没有人可以在实际设备(iphone 视网膜或非视网膜)上处理最大宽度和高度?

【讨论】:

  • 我也有这个问题,不过这个问题只出现在横屏模式下,
【解决方案2】:

试试

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

【讨论】:

    猜你喜欢
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 2021-12-31
    • 2018-03-10
    相关资源
    最近更新 更多