`

iOS开发经验总结(一)

ios 
阅读更多
软件开发方面
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可以记录应用程序崩溃日志,并快速定位到出问题的代码行。
分享到:
评论

相关推荐

    多年iOS开发经验总结

    ios开发常用到的API,适用于ios开发者,iOS开发经验总结

    两年的iOS开发经验项目总结

    一本自己总结的开发资料,很基础,希望给大家带来帮助

    ios开发经验和技巧

    本人总结的关于ios开发的心得,已经从事两年的ios开发,对于ios项目各方面注意的地方有些心得

    ios学习资料总结

    这是某位开发人员总结一年ios开发的经验总结,有很多值得学习的!

    iOS开发你需要知道的

    此资源是本人从事iOS开发以来,实际工作中遇到的问题及坑点的总结。皆在为后来者提供一种思路或解决方案, “授人以鱼,不如授人以渔”就是这个道理。 希望我的这些开发中的工作经验能真正的帮助到你, 此为本人分享...

    iOS应用逆向工程

    中高级iOS开发人员;架构师    全球首本讲解iOS8应用逆向工程的实战手册,作者毫无保留地分享了数年来在iOS逆向工程领域的经验;  内容系统深入,逻辑紧密,实战性强,从iOS系统架构等理论出发,以多个实例贯穿...

    iOS DevCamp幻灯片分享:社区类iPhone应用开发的技术实践 | 麻麻帮 陈剑飞

    主题简介:很多iPhone应用产品的开发,并没有多少技术亮点,而更多的是对各种iOS开发技术的灵活掌握和应用,以及经验的积累。本演讲将结合讲师这些年自学iPhone开发的历程,结合自己多个应用开发实践的案例,与大家...

    iPhone与iPad开发实战:iOS经典应用剖析

    从事iOS开发多年,曾开发“神农诀”网络游戏iPhone客户端软件,国家农垦产品追溯系统iPad版客户端,金融行业微博iOS客户端,以及iPhone手机充值应用,LeBallon游戏等多款App Store上线产品。为银河、CSTP、安博和...

    iOS应用逆向工程(第2版)

    全球第一本讲解iOS8应用逆向工程的实战手册,作者毫无保留地分享了数年来在iOS逆向工程领域的经验。 内容系统深入,逻辑紧密,实战性强,从iOS系统架构等理论出发,以多个实例贯穿全书,阐述class-dump、Theos、...

    25条提高iOSApp性能的建议和技巧

    根据多年开发经验总结提高iOSAPP性能的建议和技巧,可作为开发者的参考工具。

    iOS 6实践指南与源码

    一位20年开发经验的前辈总结的资料,内含随书源码,ios开发入门不错的资料

    黑苹果系统(ios开发环境)安装教程

    根据在Z460机型安装黑苹果系统的经验总结的教程,难免出现纰漏和错误,欢迎朋友没予以指出。请尊重原作者版权,转载请注明出处,谢谢。

    iOS开发的22个奇谲巧技

    本文作者@叶孤城___,他结合自身的实践开发经验总结出了22个iOS开发的小技巧,以非常欢乐的语调轻松解决开发过程中所遇到的各种苦逼难题,光读着便已忍俊不禁。类似于图1,我不想让下面的那些空显示。很简单,添加...

    iOS支付组件封装(微信,支付宝,银联)

    本人在iOS开发过程中,通过对微信,支付宝,银联等三方支付库的集成的经验。总结并进行了二次的抽象与封装,将三种支付方式封装为统一的支付接口并提供给客户端来使用。

    微信小程序开发BUG经验总结

    小程序开发越来越热,开发中遇到各种各样的bug,在此总结了一些比较容易掉进去的坑分享给大家。 1. new Date跨平台兼容性问题 在Andriod使用 new Date(“2018-05-30 00:00:00”) 木有问题,但是在ios下面识别不...

    使用github管理iOS分布式项目开发

    在我们iOS项目开发过程中, 我们的团队成员都是分散的、分布式,这个项目管理带来了挑战。Git是一个能够进行版本管理的软件,它是cvs和svn的未来。下面我根据我们的经验总结一些心得如下:你是可以根据自己的需要...

    iOS模块化开发浅析

    背景:由于目前所在公司的iOS项目的依赖管理是比较原始的状态,但是APP功能又是越来越复杂的,这就带来的很多问题,比如开发时编译时间过长、模块间耦合严重、模块依赖混乱等。最近又听说这个项目中的部分功能可能...

Global site tag (gtag.js) - Google Analytics