目前我正在测试一个差不多完成的应用程序。总的来说它运作良好。
但我已经看到应用程序崩溃(可重现,但随机时间),当我在使用MapKit和CoreLocation的视图控制器和仅显示一些简单按钮的普通控制器之间快速切换时。
在返回普通VC后发生崩溃。这种快速变化不是用户通常的使用场景,我这样做只是因为测试太无聊了;-) - 但现在我知道某处出现了错误。
有没有人有想法,在哪里看?请参阅以下设备的错误报告 - 它看起来总是一样的。 Xcode中的错误消息不同,但总是带有无法识别的选择器。顺便说一句。我不使用performSelector:withObject:它必须来自框架。
我倾向于猜测,MKMapView或CoreLocation中有一些内部初始化任务,当从这个VC返回这么快的时候没有完成这些任务并导致问题?
Xcode中的错误消息:
2012-08-25 17:26:20.375 Kanal01 [4070:707] - [__ NSCFArray mapView:didUpdateUserLocation:]:发送到的无法识别的选择器 实例0x10b030
2012-08-25 17:26:20.384 Kanal01 [4070:707] *** 由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:' - [__ NSCFArray mapView:didUpdateUserLocation:]:发送到的无法识别的选择器 实例0x10b030'
***首先抛出调用堆栈:(0x374fa88f 0x351ff259 0x374fda9b 0x374fc915 0x37457650 0x36f13e63 0x374591fb 0x37495ab9 0x36f09b21 0x36badde3 0x36bad785 0x36ba7e4f 0x374ceb01 0x374ce12f 0x374cd351 0x374504a5 0x3745036d 0x33c0f439 0x311fccd5 0xa9eed 0xa9e88)终止调用抛出异常
设备日志内容:
异常类型:EXC_BAD_ACCESS(SIGSEGV)
例外代码: KERN_INVALID_ADDRESS位于0x00000000
崩溃的线程:0
线程0名称:调度队列:com.apple.main-thread
线程0 崩溃:
0 libobjc.A.dylib 0x36fe8f7e 0x36fe5000 + 16254
1 MapKit 0x337b9e5c 0x3378b000 + 192092
2 CoreFoundation 0x30c0f1f4 0x30bf7000 + 98804
3 CoreFoundation 0x30c4bab2 0x30bf7000 + 346802
4 MapKit 0x337afb1a 0x3378b000 + 150298
5 CoreLocation 0x33ccaddc 0x33cc2000 + 36316
6 CoreLocation 0x33cca77e 0x33cc2000 + 34686
7 CoreLocation 0x33cc4e48 0x33cc2000 + 11848
8 CoreFoundation 0x30c84afa 0x30bf7000 + 580346
9 CoreFoundation 0x30c84128 0x30bf7000 + 577832
10 CoreFoundation 0x30c8334a 0x30bf7000 + 574282
11 CoreFoundation 0x30c0649e 0x30bf7000 + 62622
12 CoreFoundation 0x30c06366 0x30bf7000 + 62310
13 GraphicsServices 0x32c80432 0x32c7c000 + 17458
14 UIKit 0x30369cce 0x30338000 + 203982
15 Kanal01 0x00069fde 0x68000 + 8158
16 Kanal01 0x00069f78 0x68000 + 8056