CALayerInvalidGeometry exception durante reproducción de video HTML5

Después de actualizar el SDK de iOS 4.2, recibo la siguiente exception en mi aplicación:

Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [nan 22]' 

(Vea a continuación la copy de la stack de llamadas)

Detalles:

'- UIWebView con label de video está dentro de UIScrollView

'- El video puede reproducirse dentro de UIWebView , pero cuando se intenta acercar y usar el button de UIWebView o hecho del reproductor, la aplicación se bloquea con dicha exception. Esto no sucede en el SDK 3.2.

 *** Call stack at first throw: ( 0 CoreFoundation 0x01150be9 __exceptionPreprocess + 185 1 libobjc.A.dylib 0x012a55c2 objc_exception_throw + 47 2 CoreFoundation 0x01109628 +[NSException raise:format:arguments:] + 136 3 CoreFoundation 0x0110959a +[NSException raise:format:] + 58 4 QuartzCore 0x0200996a _ZL18CALayerSetPositionP7CALayerRKN2CA4Vec2IdEEb + 177 5 QuartzCore 0x020098b5 -[CALayer setPosition:] + 42 6 QuartzCore 0x020097cc -[CALayer setFrame:] + 763 7 UIKit 0x0030d307 -[UIView(Geometry) setFrame:] + 255 8 UIKit 0x003e6add -[UISlider setFrame:] + 166 9 MediaPlayer 0x00f0faee -[MPDetailSlider setFrame:] + 78 10 MediaPlayer 0x00f267b7 -[MPWildcatFullScreenVideoOverlay layoutSubviews] + 1280 11 QuartzCore 0x0200e451 -[CALayer layoutSublayers] + 181 12 QuartzCore 0x0200e17c CALayerLayoutIfNeeded + 220 13 QuartzCore 0x0200737c _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 310 14 QuartzCore 0x020070d0 _ZN2CA11Transaction6commitEv + 292 15 QuartzCore 0x020377d5 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 99 16 CoreFoundation 0x01131fbb __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27 17 CoreFoundation 0x010c70e7 __CFRunLoopDoObservers + 295 18 CoreFoundation 0x0108fbd7 __CFRunLoopRun + 1575 19 CoreFoundation 0x0108f240 CFRunLoopRunSpecific + 208 20 CoreFoundation 0x0108f161 CFRunLoopRunInMode + 97 21 GraphicsServices 0x01a85268 GSEventRunModal + 217 22 GraphicsServices 0x01a8532d GSEventRun + 115 23 UIKit 0x002e642e UIApplicationMain + 1160 24 ecom 0x000022c0 main + 102 25 ecom 0x00002251 start + 53 ) terminate called after throwing an instance of 'NSException' 

Desde iOS 4.2 parece haber un problema con los cálculos del tamaño de marco para el control deslizante dentro de MoviePlayer.

Si el ancho del marco se establece entre 143.0 y 235.0, se produce esta exception.

Estaba viendo un problema similar con mi UIScrollView. Noté esta advertencia en los documentos de iOS:

Importante: no debe incrustar objects UIWebView o UITableView en objects UIScrollView. Si lo hace, puede producirse un comportamiento inesperado porque los events táctiles para los dos objects pueden mezclarse y manejarse erróneamente.

Tenía un UITextView embedded dentro del scrollView. Eliminar eso solucionó el problema para mí.

También tuve el mismo problema con una class henetworkingada de un UIScrollView. La solución fue bastante extraña: en lugar de usar "initWithFrame", simplemente usé "init" y puse el marco manualmente en la siguiente línea. Esto resolvió mi problema.

El problema ocurrió solo en un object específico: creé objects del mismo tipo con "initWithFrame" en otras partes de mi progtwig sin problemas. El problema también ocurrió solo en un iPhone 4 con iOS 4.2. Funcionó sin problemas en el iPhone 4 con iOS 4.1 y en un iPad con iOS 4.2.

He comenzado a tener las mismas expeciones con 4.2 y Xcode 4.2.5 ( solo en el simulador , nunca en el dispositivo 4.2 real) y con el código CAGradientLayer para gradient-background para celdas, que de otro modo funciona bien en un puñado de otras aplicaciones,

por suerte,

al rodear el código con el bloque Try-Catch se producen expulsiones a veces, pero no aparecen artefactos visibles, todas las celdas todavía tienen backgrounds gradientes.