• iOS代码规范


    命名规范

    类命名

    1. 首字母大写,之后每个单词首字母都大写
    2. 使用能够反映类功能的名词短语
    3. 文件和类同名

    特殊类命名

    1. 如果是视图控制器的子类应添加后缀“ViewController”或者“Controller”,BeeFramwork中加”Board_iPhone“。Beeframework中BeeUIBoard继承于”ViewController“。
    2. 如果是视图的子类应添加后缀“View”
    3. 如果是按钮的子类应添加后缀“Button”

    分类(类别)命名

    与类命名相同,此外需添加要扩展的类名和“+”

    例如:NSString+URLEncoding

    协议(委托)命名

    与类命名相同,此外需添加“Delegate”后缀

    例如:MyViewDelegate

    方法命名

    1. 首字母小写,之后每个单词首字母都大写
    2. 方法名使用动词短语

    举例:- (void)setPostValue:(int)value

    方法参数命名

    1. 首字母小写,之后每个单词首字母都大写
    2. 具有足够的说明性
    3. 不需要添加类型前缀

    举例:- (void)sendUserInfo:(NSDictionary *)userInfo

    变量命名

    1. 首字母小写,之后每个单词首字母都大写
    2. 具有足够的说明性
    3. 成员变量不需要添加“_m”前缀
    4. 成员变量添加“_”前缀

    常量命名

    1. 常量(预定义,局部常量等)使用小写k开头的驼峰法, 举例:kInvalidHandle , kWritePerm
    2. 枚举类型命名首字母大写,之后每个单词首字母都大写,最后加“s”
    3. 枚举变量使用枚举类型去掉“s”作为前缀,每个单词首字母大写,中间不允许加下划线 
      举例:
    typedef enum UIControlEvents{
    
    UIControlEventTouchDown,
    
    UIControlEventTouchUpInside
    
    }UIControlEvents;

    图片命名

    1. 使用英文,首字母大写,之后每个单词首字母都大写
    2. 添加模块名作为前缀,避免冲突
    3. 图片应该与类文件一样,按模块分组放置

    分组命名

    1. 使用英文,首字母大写,之后每个单词首字母都大写
    2. 每个分组使用模块的名字
    3. 使用的开源库统一放在“Library”分组下
    4. 使用的公共组件统一放在“Common”分组下
    5. 视图控制器及AppDelegate统一放在“Controllers”分组下

    书写规范

    注释

    1. 文件都包含文件头,要说明文件名、作者、创建时间、变更记录
    2. 多人协作完成项目时,public接口的每个方法都应该添加关于函数,参数,返回值以及副作用的注释
    3. 当if语句的判断条件复杂时,需要用注释说明判断内容
    4. 接口类(继承于BaseClient)的头文件每个方法前都应该注明方法的作用

    方法

    1. 留一个空格在-或+和返回类型之间,但参数列表里的参数之间不要留间隔,每个冒号之前都必须有对该参数的说明词,如:p - (void)doSomethingWithString:(NSString *)string number:(int)num
    2. 如果参数过多,推荐每个参数各占一行。使用多行的情况下,在参数前加冒号用于对齐,如:
    -(void)doSomethingWith:(GTMFoo *)theFoo
                      rect:(NSRect)theRect
                  interval:(float)theInterval

    其他规范

    1. 操作符前后都要加空格
    2. 避免相同的代码段在多个地方出现
    3. 语句嵌套层次不得超过3层
    4. 每个实现文件建议在500行以内,不能超过1000行,超过之后应考虑通过抽象类对代码进行重构
    5. 及时删除或注释掉无用的代码
    6. UITableViewCell里面的network client都要委托出来
    7. 点击按钮之后需要切换按钮图片,当这两张图片没有关联时(例如一张图片相比另一张图片有选中效果),不应该设置为UIControlSelected
    8. 控件布局使用相对坐标
    9. 确定不使用的代码应该删除
  • 相关阅读:
    剑指offer(29):最小的K个数(pop_heap函数的使用)
    C++ partition(STL partition)算法使用
    rvm离线安装
    解决redis requires ruby version 2.3.0
    vim 中如何替换选中行或指定几行内的文本
    Vue.js框架:官方命令行工具的安装和使用(三)
    Node.js:windows下安装配置(一)
    Redis开发:windows下的redis安装记录(一)
    Vue.js框架:计算属性computed的用法(二)
    面试知识(一)
  • 原文地址:https://www.cnblogs.com/yunxinxi/p/4603304.html
Copyright © 2020-2023  润新知