博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS开发经验总结(一)
阅读量:4941 次
发布时间:2019-06-11

本文共 1549 字,大约阅读时间需要 5 分钟。

本文转载至 :http://dreamahui.iteye.com/blog/1878650

软件开发方面 

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可以记录应用程序崩溃日志,并快速定位到出问题的代码行。

转载于:https://www.cnblogs.com/Camier-myNiuer/p/3437014.html

你可能感兴趣的文章
iOS连续上传多张图片
查看>>
RN animated缩放动画
查看>>
PowerDesigner物理模型生成Excel文件
查看>>
pyqt多文件打包
查看>>
PHP字符串处理函数
查看>>
stm32新建工程(详细)
查看>>
【Codeforces】Gym 101173B Bipartite Blanket 霍尔定理+状压DP
查看>>
HDU - 1757 A Simple Math Problem (矩阵快速幂)
查看>>
python学习记录
查看>>
MySQL 之 视图、触发器、存储过程、函数、事物与数据库锁
查看>>
算法第五章作业
查看>>
Linux常用命令总结
查看>>
HDU 1257 最少拦截系统【最长上升子序列】
查看>>
FIFO的使用场景
查看>>
test10
查看>>
TP框架中ajax post请求时提示404
查看>>
Au cs6怎样才能导入和导出m4a或者就是aac格式的文件呢?
查看>>
JVM 垃圾收集
查看>>
题目1168:字符串的查找删除(字符串操作)
查看>>
HDU 2815 Mod Tree
查看>>