2012-03-11 8 views
6

L'intero blocco di codice è costituito dai seguenti:CALayer renderInContext: causa incidente sconosciuto

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

ma dopo il test, questa linea è quello che causa il problema:

[webview.layer renderInContext:UIGraphicsGetCurrentContext()]; 

Arresto anomalo dell'applicazione con nessun motivo è elencato nella console e l'uso di @try @ catch @finally non produce nulla. Ho importato Quartzcore in AppDelegate.h, se questo ha qualcosa a che fare con esso. L'app funziona bene nel simulatore, ma si blocca quando viene eseguito su un dispositivo reale.

+1

si blocca con che cosa? La console stampa qualcosa? È EXC_BAD_ACCESS o SIGABRT o NSExceptionThrow? – CodaFi

+0

la console non stampa nulla e non compare nulla in Xcode. Sono completamente confuso da ciò che sta accadendo, quindi mi chiedevo se stavo facendo qualcosa di sbagliato. – Greg

+0

Hai esattamente lo stesso problema – niklassaers

risposta

3

@Greg: sembra un problema di overflow di memoria sul dispositivo poiché il dispositivo è vincolato dalla memoria mentre il simulatore funziona con diverse configurazioni di memoria, sto correndo nello stesso - questo può accadere per pagine web lunghe, qualche idea su come risolverlo?

Qualcuno cosa è larghezza e altezza massime [CALayer renderInContext] può gestire sul dispositivo reale (iphone retina o non-retina) prima che si blocchi?

+0

Ho anche qualche problema, ma questo problema sta arrivando solo in modalità orizzontale, – Sabareesh

+0

Come mai è la risposta accettata? –

0

provare

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

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();