20140926個人日誌

每日一結

    今天完成:

1. tableView和步行路線交互顯示問題,選擇對應的行,則在地圖頁面顯示相應點的詳細信息;

2. 在mapView上添加按鈕,使得路線的結點(氣泡信息)能自由的移動;

3. 代碼的優化,解決內存泄漏的問題。牢記,誰申請,誰釋放!有alloc申請了才釋放,不能過度釋放。

    一個比較容易出錯的地方,如下面代碼:

             NSArray *array = [[NSArray alloc] init];

             array = otherArray;

本來只是賦值,所以只需定義並賦值即可,並不需要alloc申請內存操作!

       事實上,這樣操作是無效的!因爲申請的內存給array對象後,在給 array 賦值時,array又指向了其它地方,alloc分配的地址完全無效。如果因爲這樣 alloc 後,後面又 release 掉了,那就會造成過度釋放的問題,很容易讓程序崩潰。       

       只須  NSArray *array = otherArray; 後邊也不用 [array release];

       誰負責申請 otherArray 誰負責釋放 otherArray 即可。


4.如果內存泄漏問題比較隱晦,不容易找到,可考慮使用“殭屍對象”,即讓釋放掉的內存暫時不釋放,如此可定位至錯誤的地方。(用的還不是很熟練!)具體操作如下:

       Product -> Scheme -> Edit Scheme

 彈出一個對話框。側邊選擇Run 項目名,橫向選擇 Diagnostics, 勾選 Enable Zombie Objects;

然後運行即可。


5. Calayer錯誤是指UI界面的錯誤,只須考慮UI界面上的元素即可。

6. 完成 Python 面向對象高級編程的概覽學習,熟悉__slots__ 、@property 、多重繼承 定製類 、使用元類的使用規則

ps:將要學習 Linux 終端命令,《鳥哥的私房菜》, 再次回顧 gitHub

發佈了33 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章