Objective-C我的代码规范

作者: Corbin___ | 来源:发表于2017-06-27 10:11 被阅读848次

    Objective-C代码规范


    前言

    代码规范,统一才是最好的,团队开发中切记不要自己搞一套,跟着团队规范走


    目录

    • 属性命名
    • 类名命名
    • 方法命名
    • 方法参数命名
    • 分类命名
    • 枚举命名
    • 组织代码

    属性命名

    小驼峰命名+类型后缀
    这里的类型后缀建议全称,例如button就写button不要写btn,原因的话,就是尽量按objective-C的命名原则来,就是尽量看命名就知道是什么意义,不怕冗长

    既然选择了她(Objective-C),就要忍受她的原则(清晰但冗长)

    // 属性命名:小驼峰+类型后缀
    // 优点:看见属性名,可以知道属性的含义和类型
    1.注意示例空格位置
    2.*号紧跟属性名
    3.@property括号内的描述性修饰符,严格按以下顺序书写:原子性,内存管理,读写..
    @property (nonatomic, strong) UITextField *textField;
    
    

    补充:
    关于NSString是用strong还是copy类型,如果自己对这个不是很清楚,那么就用copy,如果清楚是strong和copy是怎么回事,并且想提高代码质量,那么就可以自己把握好用strong或copy
    相关文章:NSArray、NSMutableArray、copy、strong关系探究

    类名命名

    基本原则:大驼峰,简明表达命名含义
    如果是特点大功能模块下的类,应该以大功能模块大写字母简写作为类名前缀
    比如网络请求库的根文件名是NetWork,那么子文件下的相关类,命名应该为NW做为前缀

    
    // 根文件名字
    NetWork
    // 子文件的命名可为
    NWHttpRequest
    
    

    方法命名

    注意点:
    1.如果是工具类方法,一定要在方法前加注释(快捷键:option+command+/)
    2.多参数方法,冒号对齐
    3.注意实例的空格

    //执行性的方法以动词开头
    - (void)replaceObjectAtIndex:(NSUInteger)index 
                      withObject:(id)anObject;
    
    // 返回性的方法以返回内容开头
    + (id)arrayWithArray:(NSArray *)array;
    // 还有一种,也可以用get开头命名
    

    方法参数命名

    方法参数的命名,有人喜欢前缀加m,我个人的话,建议方法参数尽量简短,原因,一般知道大概意思就可以了,因为冗长的话,这个接口很长啊,而且接口习惯注释返回值,参数,所以个人建议参数简短,局部变量也可以简短

    /**
     设置RGB,返回UIColor类型
    
     @param mR red
     @param mG green
     @param mB blue
     @param mAlpha 透明度
     @return UIColor类型
     */
    - (UIColor *)setColorWithRed:(int)mR
                           green:(int)mG 
                            blue:(int)mB
                           alpha:(CGFloat)mAlpha {
        
        return  [UIColor colorWithRed:mR/255.0 green:mG/255.0 blue:mB/255.0 alpha:mAlpha];
        
    }
    
    
    

    分类命名

    类名:肯定要加前缀,避免跟第三方库重名
    方法名:前缀_(前缀加下划线)

    这里说个我个人的习惯,
    普通方法的命名是cor_xxx,
    但是如果是set或者get的命名的话,
    我比较喜欢set_corXxxx或者get_corXxxx

    // 处理数据越界分类
    #import <Foundation/Foundation.h>
    
    @interface NSArray (CorArrayBeyond)
    
    - (void)set_corAge;
    
    @end
    
    

    枚举命名

    oc的枚举有个特点,就是长,那么我们枚举的目的就是要长到替代注释最好了,这样别人就不用回去看注释

    typedef NS_ENUM(NSInteger, CorRepaymentState){
        CorRepaymentUnReceive = 1,
        CorRepaymentReceived,
        CorRepaymentPreReceive,
        CorRepaymentOverDueReceive,
    };
    
    

    代码组织

    推荐博文: iOS应用架构谈 view层的组织和调用方案

     #pragma mark - tableView 进行分段,便于代码维护和阅读
    
    

    相关文章

      网友评论

      • CloudL:很不错,收藏先
      • test4345:看到nsstring用strong就有点看不下去了
        Corbin___:@不知蜕变的挣扎 是有错误吗??指教下
        不知蜕变的挣扎:@陈泽槟 颠覆三观。。。
        Corbin___:@test4345 NSString不是一定用copy的,对于字符串的set方法,底层是会进行一次判断的(if),判断是可变类型还是不可变类型,如果是可变类型,那么就进行copy(深复制)。如果是不可变类型那个就用strong(浅复制),所以,对于一个大型项目来说,如果操作好string是用copy还是strong,还是可以提高性能的;如果你的NSString被赋值的时候,有可能被可变字符串赋值,那么你不想它改变就用strong....自己去深究吧
      • e43e5251876a:惊叹:竟然还有人说参数对齐是规范写法。老乔的棺材盖快压不住了
        Corbin___:@Only_Here 看个人习惯,超过三个参数,参数冒号对齐,看apple的源码也是这样
      • 你看见我的小象了吗:我的建议啊,类名、方法名、变量名,写的足够优秀。
        尽量少写注释,要写注释也用英文写
        你看见我的小象了吗:@陈泽槟 可以这么理解。个人要求习惯不同而已,不过你的很棒,向您学习
        Corbin___:@你看见我的小象了吗 公司团队开发规范而已,所以只是对公司适用,写英文注释除非是写框架而且想给外国小伙伴看到
      • 吾名唐宋:写的不错,还好自己平时挺规范的,还有个小细节,那个冒号对齐,自己手敲的吗
        Corbin___:@吾名唐宋 不用,你直接换行,会自动冒号对齐
      • 花样棉花:写的真棒👍
        nil_C:@孤独总是那么可怕 hahhhh
        花样棉花: @陈泽槟 不是,我残疾人士😘
        Corbin___:@孤独总是那么可怕 你是做iOS开发的吗

      本文标题:Objective-C我的代码规范

      本文链接:https://www.haomeiwen.com/subject/viwscxtx.html