IOS培训

亿元级外企ios培训企业

  • 全国服务监督电话4008270010
iOS培训 > IOS开发教程 > IOS开发经验教训总结
  • IOS开发经验教训总结

    发布:iOS培训  来源:IOS开发教程  时间: 2017年03月15日

  • 以下整理的各种IOS开发经验教训总结,希望对大家有所帮助:...

  • 以下整理的各种IOS开发经验教训总结,希望对大家有所帮助:

    1、所有的UI操作,都要切换到主线程中进行.否则,会发生莫名其妙的错误.

    2、在主线程中,runloop默认是开启状态的。非主线程中,如果要用到runloop,必须手动开启runloop。

    3、对于常见的EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION,错误,一般都是因为访问已经被release的对象造成的。尤其是在一个线程中访问另外一个线程的autorelease库中的对象,尤其要注意此类问题。

    4、严格遵守iphone 内存管理手册,对于不是由你创建的对象,不要越权release,否则,可能会导致程序crash.有时,一些看起来非常严重的bug,在经过N过次努力,多种思路尝试fix之后,再回头分析bug产生的原因,你会发现,造成这个严重bug的原因,很可能是你违反了一个众所周知的规则引起的.这个规则你非常清楚,熟悉,但就是在coding的时候,稍不留神违反了它.于是就带来了灾难性后果.

    5、除了面向对象的cocoa外,iphone编程不要忘记非面向对象的Core Foundation。 面向对象库里很多没有的功能,可以尝试在Core Foundation里找找。披如:RSA算法,MD5算法,SHA1算法,AES加密算法等,cocoa对象库里并没有相应的实现,但在core foundation里,均有相应的实现。

    6、NSString类里没有的字符串编码GBK,GB2312,GB18030等,在CoreFoundation里,能找到相应的编码。建立socket连接,获得输入流和输出流时,也需要使用Core Foundation里的CFNetwork api。等等。

    7、通过设置NSZombieEnabled参数,有非常有效帮助解决内存释放错误。

    在消除某个对象时,如果为该对象设置了delegate,则需要先将delegate设成nil,这是一种良好的代码习惯。

    8、在3.0 的Simulator上使用Instruments 检测内存泄漏时,无法看到函数名,只能看到一些地址指针.在3.1,3.1.2,3.1.3的simulator都正常,能够正常地看到是在哪个函数中存在的内存泄漏.

    通过Nib文件加载viewcontroller的各种UI控件时时,在viewDidLoad函数里,viewController的控件才能使用。在viewcontroller的构造函数里,nib里的控件都还没有完成链接构造呢。

    9、iPhone程序崩溃不要着急。可以结合使用Console和objc_exception_throw可以快速定位根源所在。

  • 上一篇:开发者必备的108个快捷键

    下一篇:入门级iOS开发者需掌握的知识清单

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56