2012-03-11 9 views
6

を引き起こすコードのブロック全体は、以下からなる:CALayerのrenderInContext:不明クラッシュを

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をインポートしました。もしそれが何か関係があれば。アプリはシミュレータで正常に動作しますが、実際のデバイスで実行するとクラッシュします。

+1

クラッシュを試してみてください?コンソールは何かを印刷しますか?それはEXC_BAD_ACCESSかSIGABRTかNSExceptionThrowですか? – CodaFi

+0

コンソールは何も印刷せず、Xcodeに何も表示されません。私は何が起こっているのか全く戸惑っているので、私が何か間違っているのか疑問に思いました。 – Greg

+0

全く同じ問題が発生しました – niklassaers

答えて

3

@Greg:デバイスがメモリに制約されているため、デバイスがメモリの制約を受けているようですが、シミュレータは異なるメモリ構成で動作しています。これは同じWebページで実行されています。

最大幅と高さ[CALayer renderInContext]は、クラッシュする前に実際のデバイス(iPhoneの網膜または網膜以外)で処理できますか?

+0

私にもいくつか問題がありますが、この問題は水平モードでのみ発生します – Sabareesh

+0

それは受け入れられた答えですか? –

0

は何で

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

UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
関連する問題