开发iOS项目需要注意哪些的点,以及个人开发的规范(纯个人总结)

244 阅读2分钟

前言

自己做iOS开发4年多了,目前感觉自己也就是个中级而已,可能现在行情不好要求也高了,中级估计都算不上了,做过的项目倒是不少,可是出名的好像没有,咋也没去过大厂也不知道大厂里边具体啥样的,不过他们做出来的app确实不错。趁现在不忙总结一些自己开发项目中遇到的坑或者是一些自己的编程规范。有哪些地方不对或者有什么补充的欢迎评论

规范

1,苹果定义的命名规范文档地址:developer.apple.com/library/arc…

2,项目中要尽可能的多使用断言,这样好多问题就能提前暴露出来

3,数组遍历的时候在外层需要加一个个数为0的情况,不然会漏掉条件(类似代码如下)

4,如果有延时的任务,尽量不要使用dispatchAfter方法,因为这个会导致页面延迟走dealloc,而且每进入一次页面,都会有创建一个新的定时任务,建议使用dispatch_source,然后再dealloc里边cancel掉

5,使用到block的时候外部需要改成weak,内部最好用strong(非强制但是设计线程或者延迟执行必须用)

6,如果一个方法频繁的调用,那么需要加锁 @synthesize

7,为了避免奔溃,数组使用的时候一定需要判断是否越界(尤其是cell赋值,点击)

8,上预发布环境提交修改内容一定要再重新查看一遍

9,在调试接口变量修改的时候一定要加debug,if(DEBUG), 比如某个参数写成固定值(之前有一次把充值金额写死了,再出现打死)

10,没写完的东西提交代码的需要要加todo

11,在使用block的时候需要先判断,比如在控制器里边定义了block,在.m要实现的时候需要判断self.block,否则多次调用的话会奔溃(比如某控制器返回执行block,但是由于卡顿导致弹出多个控制器,这时候返回就会奔溃,因为self.navigationContoler 获取的导航栏已经不是当前控制器导航栏)

12, 对于外部暴露出来的方法,如果频繁的调用的话需要添加@synthesize,比如cell里边的点击方法,或者某个控件的点击方法

13,移动端和后台涉及到时间的问题都统一使用时间毫秒(之前就遇到过后台为了前端省事直接给的固定格式,结果有的UI格式就不一致无法修改)

14,后台json传输过程中,不要出现移动端一些关键字,常见id,desciption

目前遇到的问题就这些,以后遇到新的会再补充。