iOS開發經驗總結

原創做品,容許轉載,轉載時請務必以超連接形式標明文章原始出處 、做者信息本聲明。不然將追究法律責任。

 

軟件開發方面

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

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

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

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

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

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

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

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

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能夠記錄應用程序崩潰日誌,並快速定位到出問題的代碼行。國內可能須要翻牆。

 

摘自:http://blog.csdn.net/midfar/article/details/7833753

相關文章
相關標籤/搜索