在运行ios 5的设备上,我的应用程序效果很好,但在运行ios 4.2.1的设备上出现此故障。 奇怪的是,只有在未连接到xcode时,设备才会崩溃。 当从Xcode中运行它的工作,但是当我没有Xcode的应用程序工作,直到时刻运行它调用的方法:仅当设备未连接到xcode时,iPhone崩溃,如何理解崩溃日志?
- (void)startLocationUpdates
{
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
self.locationManager.distanceFilter = 1;
self.locationManager.delegate = self;
[self.locationManager startUpdatingLocation];
}
崩溃日志:
OS Version: iPhone OS 4.2.1 (8C148)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x3830000f
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x33479462 objc_msgSend + 14
1 CoreLocation 0x34371430 -[CLLocationManager onClientEventLocation:] + 560
2 CoreLocation 0x3436f68e -[CLLocationManager onClientEvent:supportInfo:] + 98
3 CoreLocation 0x3436f804 OnClientEvent + 16
4 CoreLocation 0x3436b522 CLClientInvokeCallback(__CLClient*, CLClientEvent, __CFDictionary const*) + 42
5 CoreLocation 0x3436d3cc CLClientHandleDaemonDataLocation(__CLClient*, CLClientLocation const*, __CFDictionary const*) + 196
6 CoreLocation 0x3436d512 CLClientHandleDaemonData(__CFMessagePort*, long, __CFData const*, void*) + 286
7 CoreFoundation 0x33a813fe __CFMessagePortPerform + 242
8 CoreFoundation 0x33a556f8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 20
9 CoreFoundation 0x33a556bc __CFRunLoopDoSource1 + 160
10 CoreFoundation 0x33a47f76 __CFRunLoopRun + 514
11 CoreFoundation 0x33a47c80 CFRunLoopRunSpecific + 224
12 CoreFoundation 0x33a47b88 CFRunLoopRunInMode + 52
13 GraphicsServices 0x33b0e4a4 GSEventRunModal + 108
14 GraphicsServices 0x33b0e550 GSEventRun + 56
15 UIKit 0x32099322 -[UIApplication _run] + 406
16 UIKit 0x32096e8c UIApplicationMain + 664
17 MyApp 0x00002762 0x1000 + 5986
18 MyApp 0x00002720 0x1000 + 5920
自己是一个viewController,直到应用程序完成。但是你足够接近我发现问题不在startLocationUpdates中,而是在stopLocationUpdates中: - (void)stopLocationUpdates {self.locationManager stopUpdatingLocation]; self.locationManager.delegate = nil; self.locationManager = nil; < - 这是导致崩溃的原因! } – Eyal
很高兴这暂停;)我有同样的问题与加速度计:你杀死对象,谁从硬件recives数据,但硬件试图继续发送它的数据。这是崩溃的原因。 – SentineL