I burada asgari kod ile tüm didFinishLaunchingWithOptions
koydu: Sonuç olarakiOS uygulaması zamanında 0x000000008badf00d ayında lanse edilmesi başarısız - gecikme applicationDidBecomeActive
[UIApplication sharedApplication].idleTimerDisabled = YES;
m_bDataLoadingNeeded = YES;
return YES;
, ben applicationDidBecomeActive
çok önemli başlatma koymak zorunda kaldı. Yine de yukarıdaki hatayı alıyorum.
Yaptığım tüm referanslar, daha önce hazırladığım didFinishLaunchingWithOptions
numaralı telefonu tamamlamayı düşündüğünden bahseder. applicationDidBecomeActive
için gerekli herhangi bir kontrol var mı?
Benim kilitlenme günlük burada (her nasılsa, ben yerde tüm dsym ve bir uygulamayla symbolicate edemez, bu yüzden kesin suçlu olduğu açıklamada bilemez. Ama herkes kesinlikle değil didFinishLaunchingWithOptions
olduğunu görebilir)
Ben arka plan iş parçacığı içinde benim applicationDidBecomeActive
başlatma taşıyabilirsiniz: applicationDidBecomeActive
düşünüldüğünde
Exception Type: 00000020
Exception Codes: 0x000000008badf00d
Highlighted Thread: 0
Application Specific Information:
<MyBundleID> failed to launch in time
Elapsed total CPU time (seconds): 1.600 (user 1.600, system 0.000), 4% CPU
Elapsed application CPU time (seconds): 0.438, 1% CPU
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0:
0 libsystem_kernel.dylib 0x3c66f0fc 0x3c65e000 + 69884
1 libsystem_c.dylib 0x3c5b8124 0x3c5b7000 + 4388
2 SystemConfiguration 0x360d43ca 0x360c0000 + 82890
3 MyApp 0x001cd406 0xf9000 + 869382
4 MyApp 0x001ccb78 0xf9000 + 867192
5 MyApp 0x001cd148 0xf9000 + 868680
6 MyApp 0x001d77e4 0xf9000 + 911332
7 MyApp 0x001d7ed0 0xf9000 + 913104
8 MyApp 0x001cd908 0xf9000 + 870664
9 MyApp 0x001d46e0 0xf9000 + 898784
10 MyApp 0x000fb870 0xf9000 + 10352
11 UIKit 0x36177af6 0x36102000 + 482038
12 UIKit 0x3615d9bc 0x36102000 + 375228
13 UIKit 0x36105c34 0x36102000 + 15412
14 UIKit 0x361056c8 0x36102000 + 14024
15 UIKit 0x36105116 0x36102000 + 12566
16 GraphicsServices 0x37dfb5a0 0x37df5000 + 26016
17 GraphicsServices 0x37dfb1ce 0x37df5000 + 25038
18 CoreFoundation 0x342d2170 0x3423b000 + 618864
19 CoreFoundation 0x342d2112 0x3423b000 + 618770
20 CoreFoundation 0x342d0f94 0x3423b000 + 614292
21 CoreFoundation 0x34243eb8 0x3423b000 + 36536
22 CoreFoundation 0x34243d44 0x3423b000 + 36164
23 UIKit 0x3615c480 0x36102000 + 369792
24 UIKit 0x361592fc 0x36102000 + 357116
25 MyApp 0x000fb4be 0xf9000 + 9406
26 MyApp 0x000fb474 0xf9000 + 9332
gerçekten suçlu Çünkü bu başlangıç kodu, dahili olarak daha fazla iş parçacığı üretecektir. AFNetworking, Reachability ve blok tabanlı diğer çerçeveler kullanıyorum. Sonunda mimarlık ve ortak kod için çok fazla değişiklik yapmam gerekecek mi bilmiyorum.
Bunu en iyi ve en kısa sürede nasıl ele alacağımı kafam karıştı.
'0x8badf00d'… tipik, neden başlatma sırasında ana iş parçacığını engelliyorsunuz? Devam etmek için çok uzun zaman gerektiren iş, bir arka plan iş parçacığı içine konulmalıdır. – holex
Kodunuzun, ana parçacığı engelleyen kısmını bulmak için kullanın ve bunu optimize edin. Hakkında hiçbir şey bilmediğin şeyleri optimize etme, onu daha da kötüleştirebilirsin. – Kerni
Pek çok şey aslında arka plan iş parçacığı içinde ancak AFNetworking çağrıları gibi görebileceğim bir şekilde değil. Benim karışıklığım, tüm bu şeyi bir arka plan çağrısı içinde nasıl sarabilirim? Ayrıca, gerçekten applicationDidBecomeActive için herhangi bir uyarı sözü görmüyorum - ayrıca ilk viewdidLoad öğesinden sonra çağrıldığını gördüm. –