Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone:MKMapView奇怪崩溃_Iphone_Objective C_Crash_Uinavigationcontroller_Mkmapview - Fatal编程技术网

iPhone:MKMapView奇怪崩溃

iPhone:MKMapView奇怪崩溃,iphone,objective-c,crash,uinavigationcontroller,mkmapview,Iphone,Objective C,Crash,Uinavigationcontroller,Mkmapview,我在MKMapView上遇到问题,希望有人能帮助我 我有一个嵌入了MKMapView和导航控制器的视图。我将navigationController推入另一个viewController,然后再次推入另一个。然后,如果我返回到MKMapView并触摸地图,应用程序就会崩溃。 因此,MkmapView>View2>View3>View2>MkmapView>触摸地图,然后崩溃 我绝对不明白为什么。 如果我只推另一个视图,然后回来,它工作得很好。因此: MkmapView>View2>MkmapVi

我在MKMapView上遇到问题,希望有人能帮助我

我有一个嵌入了
MKMapView
和导航控制器的视图。我将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
有人有过类似的问题吗?有没有人能给我一些建议,告诉我如何找到bug或者我应该检查什么


谢谢你的时间

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

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


您的批注过早发布。

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

我发现iOS 4.2中需要此功能。您救了我一命。。。在iOS 5的2天内调试完成后,工作就像一个魅力:请考虑接受这个答案: