[英]crash on setUserTrackingMode with MKMapView when zoomed in
[英]Crash when loading MKMapView
加載MKMapView
時發生MKMapView
崩潰。 發生的模式是當我在一個視圖中打開ABPeoplePickerNavigationController時,這又觸發了UINavigationController
委托方法。
保存/不保存后,我轉到另一個視圖-可以正常工作。 下一個視圖-工作正常。 但是,當我使用MKMapView
進入視圖時,它崩潰了。
沒有其他觀點有任何問題。 只有加載MKMapView
的視圖MKMapView
崩潰,並顯示以下日志
*** -[UINavigationBar barStyle]: message sent to deallocated instance
我已經在代碼中注釋了加載mapview的部分,然后工作正常。 因此,似乎在加載mapview時,我的導航欄被釋放了。 但是我無法理解的是,應用程序中的其他視圖沒有任何問題,只有帶有mapview的視圖崩潰了。 我嘗試了不同的測試模式,並確保其他所有視圖都沒有問題。
該應用程序不會在模擬器中崩潰。 它僅在設備上崩潰。 為什么僅在加載mapview的視圖中而不在其他視圖中出現此問題?
我嘗試進行分析以分析我的問題。 這是我發現的,但沒有太大幫助。
我曾經也有過一樣的問題。
這是ABPeoplePickerNavigationController上的泄漏問題。 您必須確保它不會被釋放。
我聲明它是一個強大的屬性,以確保它不會被釋放,並且可以正常工作:)
嗯,對此還有一個更簡單的解決方案。 實際的問題是使用ABPeoplePickerNavigationController作為單例對象,將其委托設置為視圖控制器,然后關閉視圖控制器。 因此,在我的情況下,有效的解決方案是:
(void)peoplePickerNavigationControllerDidCancel:(ABPeoplePickerNavigationController *)peoplePicker {peoplePicker.peoplePickerDelegate = nil; //在解雇自己之前清除委托[self.navigationController dismissViewControllerAnimated:YEScomplete:nil]; }
(BOOL)peoplePickerNavigationController:(ABPeoplePickerNavigationController *)peoplePicker應該繼續進行SelectingPerson:(ABRecordRef)person屬性:(ABPropertyID)屬性標識符:(ABMultiValueIdentifier)identifier {[self displayPerson:person]; peoplePicker.peoplePickerDelegate = nil; //在解雇自己之前清除委托[self.navigationController dismissViewControllerAnimated:YEScomplete:nil]; 返回否; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.