每日一結
今天完成:
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