2010-12-06 14 views
5

oynamak, benim uygulamasında aşağıdaki özel durum alırsınız: CALayerInvalidGeometry istisna iOS 4.2 SDK güncelledikten sonra

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

Detaylar (çağrı yığını kopyası için lütfen aşağıya bakın):

videoiçine oynayabilir - '- UIWebView Video etiketiyle

UIScrollView içindedir' 10, ancak zoom yapmaya çalıştığında ve oynatıcıdan uzaklaştırma veya bitmiş düğmeyi kullandığınızda, söz konusu uygulama istisna ile çakılır. Bu ben de bir UIScrollView devralmasını bir sınıf ile aynı problem vardı 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' 

cevap

0

üzerinde olmaz. Çözüm oldukça garipti: "initWithFrame" kullanmak yerine, sadece "init" kullanıyorum ve çerçeveyi bir sonraki satıra manuel olarak ayarladım. Bu benim için problemi çözdü.

Sorun yalnızca belirli bir nesne üzerinde gerçekleşti - Programımın diğer bölümlerinde sorun yaşamadan "initWithFrame" ile aynı türde nesneler oluşturdum. Sorun, yalnızca iOS 4.2 ile bir iPhone 4'te de ortaya çıktı. IPhone 4'te iOS 4.1 ve iOS 4.2 ile bir iPad üzerinde sorunsuz çalıştı.

6

iOS 4.2'den bu yana MoviePlayer içindeki kaydırma çubuğunun çerçeve boyutunun hesaplanmasıyla ilgili bir sorun var gibi görünüyor.

çerçevenin genişliği143.0 ve bu durum oluşur 235.0 arasında ayarlanır.

1

UIScrollView'imle benzer bir sorun görüyordum. Önemli

: iOS dokümanlar bu uyarıyı fark Sen UIScrollView nesneleri UIWebView veya UITableView nesneleri gömmek olmamalıdır. Bunu yaparsanız, beklenmedik davranışlar oluşabilir çünkü iki nesne için dokunma olayları karıştırabilir ve yanlış işlenebilir.

Ben scrollView içine gömülü bir UITextView vardı. Bu sorunu kaldırmak benim için sorunu çözdü.

0

Ben aynı expcetions sahip başladım 4.2 ve Xcode 4.2.5 (sadece simülatörü yılında - asla gerçek 4.2 cihazda) ve hücreler için degrade-arka plan için CAGradientLayer koduyla - Aksi üzerine çalışma Try-catch bloğu ile kodunu çevreleyen diğer uygulamaların avuç

Neyse

,

bazen expcetion üretmek yapar, ancak görünür eserler tüm hücreler hala degrade arka planlar var, görünür.

İlgili konular