整个代码块包含以下内容:
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/