2010-12-06 8 views
5

Nach dem Update auf iOS 4.2 SDK spielen, erhalte ich die folgende Ausnahme in meiner App:CALayerInvalidGeometry Ausnahme während der HTML5-Videos

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

(Bitte unten für die Kopie von Call-Stack sehen)

Details:

'- UIWebView mit Video-Tag ist innerhalb UIScrollView

' - Video innerhalbspielen 10, aber wenn versucht, einzoomen, und verwenden Sie entweder Auszoomen oder Fertig-Taste aus dem Player, stürzt die App mit der genannten Ausnahme. Dies geschieht nicht auf 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' 

Antwort

0

ich das gleiche Problem mit einer Klasse auch von einem UIScrollView vererbt hatte. Die Lösung war ziemlich seltsam: Anstatt "initWithFrame" zu verwenden, habe ich einfach "init" verwendet und den Frame manuell in der nächsten Zeile gesetzt. Das hat das Problem für mich gelöst.

Das Problem trat nur bei einem bestimmten Objekt auf - ich erstellte Objekte des gleichen Typs mit "initWithFrame" in anderen Teilen meines Programms ohne Probleme. Das Problem trat auch nur auf einem iPhone 4 mit iOS 4.2 auf. Es hat ohne Probleme auf iPhone 4 mit iOS 4.1 und auf einem iPad mit iOS 4.2 funktioniert.

6

Seit iOS 4.2 scheint es ein Problem bei der Berechnung der Bildgröße für den Schieberegler im MoviePlayer zu geben.

Wenn die Breite des Rahmens wird zwischen 143,0 und 235,0 Diese Ausnahme auftritt.

1

Ich sah ein ähnliches Problem mit meinem UIScrollView. Ich habe bemerkt, diese Warnung in den iOS-docs:

Wichtig: Sie nicht UIWebView oder UITableView Objekte in UIScrollView Objekte einbetten soll. Wenn Sie dies tun, kann unerwartetes Verhalten führen, weil Berührungsereignisse für die zwei Objekte verwechselt werden können und falsch behandelt werden.

Ich hatte ein UITextView eingebettet in der ScrollView. Durch das Entfernen wurde das Problem für mich behoben.

0

Ich habe damit begonnen, die gleiche expcetions mit 4,2 und Xcode 4.2.5 (nur in Simulator - nie auf der Real 4.2-Gerät) und mit CAGradientLayer Code für Gradienten-Hintergrund für Zellen - auf die sonst funktioniert gut Handvoll anderer Anwendungen,

zum Glück

den Code mit Try-Catch-Block umgeben produziert expcetion manchmal, aber keine sichtbaren Artefakte erscheinen, alle Zellen haben noch Gradienten Hintergründe haben.

Verwandte Themen