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

相关文章
相关标签/搜索