本文轉載至 :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