2009-11-21 149 views
1

我遇到了MKMapView問題,希望有人能幫助我。iPhone:MKMapView奇怪的崩潰

我有一個嵌入MKMapView和navigationController的視圖。我再次在我的navigationController中推入另一個viewController。然後,如果我回到MKMapView並觸摸地圖,應用程序崩潰。 所以MkmapView> View2> View3> View2> MKMapView>觸摸地圖然後崩潰。

我絕對不明白爲什麼。 如果我只推另一個視圖然後回來,它運作良好。所以: MkmapView> View2> MKMapView = OK

I在應用程序的其他部分以相同方式使用其他視圖時沒有任何問題。 視圖1>視圖2>視圖3>視圖2>視圖1 =確定

我檢查了沒有內存警告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 

有誰有同樣的問題?有人能告訴我如何找到錯誤或我應該檢查什麼嗎?

謝謝你的時間!

回答

0

試着打開殭屍。這裏可能發生的情況是NSURL對象正在被釋放,而其他地方正在被創建。

1

您的地圖視圖有一個註釋。如果您在註釋的-title方法中設置斷點,則在您觸摸地圖時將獲得相同的堆棧跟蹤。

您的註釋過早釋放。

1

確保在使用dealloc方法釋放MKMapView對象之前使用MKMapView.delegate = nil。這對於iOS 3.0非常重要,在高版本中不是必需的。

+0

我發現這在iOS 4.2中是必需的。 – chris 2011-02-22 13:33:26

+0

與UIWebView一樣。 – 2011-03-08 12:42:54

+0

你救了我哥們......從iOS 5.0的2個整天開始調試後,就像一個魅力工作:) – 2011-11-07 13:27:13