2010-12-06 2 views
5

을 재생, 나는 내 응용 프로그램에 다음과 같은 예외가 나타납니다 CALayerInvalidGeometry 예외가 아이폰 OS 4.2 SDK로 업데이트 한 후

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

세부 사항 (호출 스택의 사본은 아래를 참조하십시오) :

비디오내에서 재생할 수 있습니다 - '- UIWebView 비디오 태그는

UIScrollView은 내부에' 10,하지만 확대하려 할 때, 플레이어에서 축소 또는 완료 버튼을 사용하면 응용 프로그램이 예외와 충돌합니다. 이것은 내가 또한있는 UIScrollView에서 상속 클래스와 같은 문제가 있었다 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' 

답변

0

에 발생하지 않습니다. 해결책은 꽤 이상했다. "initWithFrame"대신 "init"을 사용하고 다음 줄에 수동으로 프레임을 설정했다. 이것은 나를 위해 문제를 해결했다.

특정 개체에서만 문제가 발생했습니다. 문제없이 프로그램의 다른 부분에 "initWithFrame"이있는 동일한 유형의 개체를 만들었습니다. 이 문제는 iOS 4.2가 설치된 iPhone 4에서만 발생했습니다. iOS 4.1이 설치된 iPhone 4와 iOS 4.2가 설치된 iPad에서 문제없이 작동했습니다.

6

iOS 4.2 이후 MoviePlayer 내부의 슬라이더에 대한 프레임 크기를 계산할 때 문제가있는 것 같습니다.

은 프레임의 폭 은 143.0이 예외가 발생 235.0 사이에 설정되는 경우.

1

UIScrollView에서 비슷한 문제가 발생했습니다. 중요

: 나는 아이폰 OS 문서에서이 경고를 발견 당신은 있는 UIScrollView 객체에 있는 UIWebView 또는 jQuery과 오브젝트를 포함하지 않아야합니다. 이렇게하면 두 객체의 터치 이벤트가 이 섞여서 잘못 처리 될 수 있기 때문에 예기치 않은 동작이 발생할 수 있습니다.

scrollView 내에 UITextView가 포함되어 있습니다. 제거하면 문제가 해결되었습니다.

0

난과 같은 expcetions을 가지고 시작했습니다 4.2 엑스 코드 4.2.5 (만 시뮬레이터에서 - 결코 실제 4.2 장치) 및 세포 그라데이션 배경 CAGradientLayer 코드 - 그렇지 않은 경우에 잘 작동 시도-Catch 블록에 코드를 주변의 다른 응용 프로그램의 소수

다행히

,

때로는 expcetion를 생산 않지만, 눈에 보이는 유물은 모든 세포가 여전히 그라데이션 배경이 있습니까, 표시되지 않습니다.