12条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等其他框架,则有另外一套命名规则。

  • 原文链接: http://www.itstrike.cn/Question/d82f8fd9-25b6-44be-b9bb-4d96977159a6.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值