iPhone:MKMapView奇怪的崩溃

时间:2009-11-21 18:07:11

标签: iphone objective-c crash uinavigationcontroller mkmapview

我遇到MKMapView的问题,希望有人可以帮助我。

我有一个嵌入MKMapView和navigationController的视图。我再次在我的navigationController中推送另一个viewController。然后,如果我返回MKMapView并触摸地图,应用程序将崩溃。 所以MkmapView> View2> View3> View2> MKMapView>触摸地图然后崩溃。

我绝对不明白为什么。 如果我只推另一个视图然后回来,它运作良好。所以: MkmapView> View2> MKMapView = OK

我在应用程序的另一部分中以相同的方式使用其他视图而没有任何问题。 View1> View2> View3> View2> View1 = OK

我检查过,没有调用内存警告viewDidUnload或dealloc方法。

The error is: *** -[NSURL length]: unrecognized selector sent to instance 0x4806930

这次是一次NSURL坠毁,但几乎所有时间都不同:NSArray,NSDictionnary等......

这是堆栈跟踪:

0    0x3266bdf4 in objc_exception_throw

1    0x32de2bfc in -[NSObject doesNotRecognizeSelector:]

2    0x32d67b18 in ___forwarding___

3    0x32d5e840 in __forwarding_prep_0___

4    0x32cec074 in -[MKOverlayView _annotationViewForSelectionAtPoint:avoidCurrent:]

5    0x32ce4b60 in -[MKOverlayView annotationViewForPoint:]

6    0x32cc7efc in -[MKMapView _firstTouchBegan:withEvent:]

7    0x32d17e28 in -[MKScrollView _firstTouchBegan:withEvent:]

8    0x32d17c98 in -[MKScrollView touchesBegan:withEvent:]

9    0x30c4a888 in -[UIWindow _sendTouchesForEvent:]

10    0x30c49f94 in -[UIWindow sendEvent:]

11    0x30c45790 in -[UIApplication sendEvent:]

12    0x30c45094 in _UIApplicationHandleEvent

13    0x31bba990 in PurpleEventCallback

14    0x32da452a in CFRunLoopRunSpecific

15    0x32da3c1e in CFRunLoopRunInMode

16    0x31bb9374 in GSEventRunModal

17    0x30bf3c30 in -[UIApplication _run]

18    0x30bf2230 in UIApplicationMain

19    0x000025f8 in main at main.m:14

有没有人有同样的问题?有人可以给我建议我如何找到错误或我应该检查什么?

谢谢你的时间!

3 个答案:

答案 0 :(得分:1)

您的地图视图有一个注释。如果在注释的-title方法中设置断点,则在触摸地图时将获得相同的堆栈跟踪。

您的注释过早发布。

答案 1 :(得分:1)

确保在使用dealloc方法释放MKMapView对象之前使用MKMapView.delegate = nil。这对于iOS 3.0很重要,而不是更高版本中的必需。

答案 2 :(得分:0)

尝试打开僵尸。这里可能发生的是NSURL对象被释放,并且在同一地址创建了其他东西。