iOS開發經驗總結(一)

本文轉載至 :http://dreamahui.iteye.com/blog/1878650json

軟件開發方面 
1.  在每一個頁面的入口和出口(通常是viewDidLoad和dealloc)打上日誌,能夠了解用戶的操做流程,並查出頁面在關閉時是否銷燬了相應的對象。 

2.  定時器NSTimer 須要在一個新線程中運行,不然UI操做會阻塞定時器。 

3.  須要爲定時器所在的線程設置NSRunLoop,不然定時器可能不會動。 

4.  若是在線程中設置了NSRunLoop,須要在銷燬線程時也將其中止,使用CFRunLoopStop 。 

5.  全部的UI操做都應該在主線程中執行,不然會致使應用崩潰(不必定是當即崩潰)。 

6.  若是項目中有c函數,出現同名的函數會致使應用編譯失敗,即便這些c函數處於不一樣的頁面中。 

7.  使用ASIHttpRequest,同步下載過程是不能被取消的,異步下載過程才能夠被取消。 

8.  應用內支付,支付成功的回調裏面,還須要對加密數據transactionReceipt 進行驗證,避免越獄的機器使用 IAPFree 等軟件僞造數據。 

9.  不要試圖獲取設備的UDID,不然會形成應用審覈不經過。可使用OpenUDID 或者 Mac 地址代替。 

10.將比較費時的操做不要放在主線程中執行,避免UI響應慢。應該在一個新線程中執行(對有同步要求的操做除外)。 

11.使用最新的Xcode and iOS SDK進行開發,對高版本的兼容性會好一些。例如Mac 10.6下只能安裝Xcode4.2and iOS SDK 5.0 ,對iOS 5.1版本的系統就不能直接調試。 

12. 圖片命名:例若有一張圖片爲 MyImage.png,爲了兼容不一樣設備,須要存爲不一樣分辨率的圖片,命名規則以下: 

MyImage.png - 默認的圖片名稱。 
MyImage@2x.png - 適用於Retina 顯示屏的高分辨率圖片。 
MyImage~iphone.png - 適用於iPhone 和 iPod touch的圖片。 
MyImage@2x~iphone.png - 適用於iPhone and iPod touch 設備 Retina 顯示屏的高分辨率圖片。 
在顯示圖片時,只須要直接取 @"MyImage.png",系統就能根據當前的設備,自動讀取相應的圖片了。 
注意:以上圖片命名規則只使用於UIKit框架。若是使用了cocos2d等其餘框架,則有另一套命名規則。 
一些好用的框架/組件: 
1.  PDColoredProgressView進度條組件,能夠設置進度條的顏色,支持iOS4。可是在ASIHttpRequest的下載進度條中很差使用。 

2.  MTLabel能夠對label中的文字設置行高。 

3.  TSAlertView能夠在彈出框(UIAlertView)中設置輸入框,相似於JavaScript中的prompt 。 

4.  ZipArchive對文件進行壓縮和解壓操做。 

5.  ASIHTTPRequest數據的上傳和下載,以及斷點續傳。 

6.  json-framework文件格式解析。 

性能優化 
1.  使用xcode自帶的 Instruments工具能夠查看應用的內存,cpu等資源使用狀況。 

2.  JSON格式解析速度優化。有人分析說 JSONKit 比 json-framework 效率更高。 

日誌跟蹤 
1.  友盟,比較全面的數據分析工具。 

2.  Crashlytics.framework能夠記錄應用程序崩潰日誌,並快速定位到出問題的代碼行。xcode

相關文章
相關標籤/搜索