2012-03-11 48 views
6

Toàn bộ khối mã bao gồm các nội dung sau:CALayer renderInContext: gây tai nạn chưa biết

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(); 

nhưng sau khi thử nghiệm, dòng này là một trong những gây ra vấn đề:

[webview.layer renderInContext:UIGraphicsGetCurrentContext()]; 

Các treo ứng dụng với không có lý do nào được liệt kê trong bảng điều khiển và việc sử dụng @try @catch @finally không có gì. Tôi đã nhập Quartzcore trong AppDelegate.h, nếu có liên quan gì đến nó. Ứng dụng hoạt động tốt trong trình mô phỏng nhưng gặp sự cố khi chạy trên thiết bị thực.

+1

Crashes với những gì? Bàn điều khiển có in được gì không? Có phải EXC_BAD_ACCESS, hoặc SIGABRT hoặc NSExceptionThrow không? – CodaFi

+0

bảng điều khiển không in bất cứ thứ gì và không có gì bật lên trong Xcode. Tôi hoàn toàn bối rối về những gì đang xảy ra, vì vậy tôi đã tự hỏi nếu tôi đã làm điều gì đó sai trái. – Greg

+0

Có vấn đề tương tự chính xác – niklassaers

Trả lời

3

@Greg: có vẻ như vấn đề tràn bộ nhớ trên thiết bị vì thiết bị bị hạn chế về bộ nhớ trong khi trình mô phỏng chạy với cấu hình bộ nhớ khác nhau, tôi đang chạy vào cùng - điều này có thể xảy ra cho các trang web dài, bất kỳ ý tưởng nào để giải quyết?

hiện bất kỳ ai có chiều rộng và chiều cao tối đa [CALayer renderInContext] có thể xử lý trên thiết bị thực tế (võng mạc iphone hoặc không võng mạc) trước khi sự cố xảy ra?

+0

Tôi cũng có một số vấn đề, nhưng vấn đề này chỉ đến trong chế độ ngang, – Sabareesh

+0

đó là câu trả lời được chấp nhận? –

0

thử

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

UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
Các vấn đề liên quan