整个代码块包含以下内容:

    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不会产生任何结果。我将Quartzcore导入AppDelegate.h中,如果与它有任何关系。该应用程序可在模拟器中正常运行,但在真实设备上运行时会崩溃。

最佳答案

@Greg:由于设备受到内存限制,而模拟器以不同的内存配置运行,所以设备上似乎出现内存溢出问题,我遇到了同样的情况-长网页可能会发生这种情况,有什么想法可以解决吗?

在实际设备(iPhone视网膜或非视网膜)崩溃之前,最大宽度和高度[CALayer renderInContext]可以处理的任何人吗?

关于ios - CALayer renderInContext : causing unknown crash,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9652267/

10-13 01:23