簡體   English   中英

CALayer renderInContext:導致未知崩潰

[英]CALayer renderInContext: causing unknown crash

整個代碼塊包含以下內容:

    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,如果它與它有任何關系。 該應用程序在模擬器中運行良好,但在真實設備上運行時崩潰。

@Greg:看起來像是設備上的內存溢出問題,因為設備是內存受限制的,而模擬器運行時使用不同的內存配置,我遇到了同樣的情況 - 這可能發生在長網頁上,任何想法如何解決?

什么是最大寬度和高度[CALayer renderInContext]可以在它崩潰之前處理實際設備(iphone視網膜或非視網膜)?

嘗試

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

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM