美文网首页
代码规范

代码规范

作者: 求长生 | 来源:发表于2020-06-01 14:14 被阅读0次

    一、命名规范

    命名原则:清晰和简洁,避免歧义。整个工程保持一致性。
    类名、协议名命名:大驼峰式命名,每个单词的首字母都采用大写字母。(类名)
    属性名、方法名:小驼峰式命名,第一个单词以小写字母开始,后面的单词的首字母全部大写。(属性)
    私有变量命名: _ 开头,例:NSString *_someVariable;
    属性关键字顺序:原子性,读写,内存管理的顺序排列。@property (nonatomic, readwrite, copy) NSString *userName;
    宏定义的常量:#define常量全部大写,单词间用 _ 分隔,#define MY_MIN(A, B) ((A)>(B)?(B):(A))。
    类型常量:以字符k开头, static NSString * const kClearCacheNotification = @"kClearCacheNotification";。
    {建议使用类型常量,不建议使用#define预处理命令
    预处理命令:简单的文本替换,不包括类型信息,并且可被任意修改。
    类型常量:包括类型信息,并且可以设置其使用范围,而且不可被修改。
    }
    Enum类型:的命名与类的命名规则一致Enum中枚举内容的命名需要以该Enum类型名称开头。
    typedefNS_ENUM(NSInteger,UIViewAnimationTransition) {UIViewAnimationTransitionNone,
    UIViewAnimationTransitionFlipFromLeft,
    UIViewAnimationTransitionFlipFromRight,
    UIViewAnimationTransitionCurlUp,
    UIViewAnimationTransitionCurlDown,};
    范型:建议在定义NSArray和NSDictionary时使用泛型,可以保证程序的安全性。

    NSArray<NSString *> *testArr = [NSArray arrayWithObjects:@"Hello", @"world", nil];
    NSDictionary<NSString *, NSNumber *> *dic = @{@"key":@(1), @"age":@(10)};
    

    iOS 9新特性、泛型、__kindof的使用

    二、代码注释规范

    1.属性注释 /* name /
    2.方法的注释使用Xcode,自带注释快捷键:Commond+option+/
    /
    *
    @param tableView
    @param section
    @return
    */
    3.单行注释,/+空格
    //TODO:标记一些未完成的或完成的不尽如人意的地方}

    三、编码规范

    编码规范就是为了保证写出来的代码可复用, 易维护, 可扩展。
    每个模块(或者函数)职责要单一,架构方面多了解。

    语法糖的使用
    使用带有 @ 符号的语法糖来生成 NSNumber 对象能使代码更简洁。

    nil 检查
    // 正确,直接判断
    if (!objc) {
    ...
    }
    // 错误,不要使用 nil == Object 的形式
    if (nil == objc) {
    ...
    }

    属性的线程安全
    定义一个属性时,编译器会自动生成线程安全的存取方法( Atomic ),但这样会大大降低性能,特别是对于那些需要频繁存的属性来说,是极大的浪费。所以如果定义的属性不需要线程保护,记得手动添加属性关键字 nonatomic 来取消编译器的优化。

    Delegate 要使用弱引用
    一个类的 Delegate 对象通常还引用着类本身,这样很容易造成引用循环的问题,所以类的 Delegate 属性要设置为弱引用。

    参考资料:

    iOS 代码规范

    iOS开发总结之代码规范

    iOS开发代码规范(通用)Objective-C开发编码规范

    【iOS】命名规范Ios Code SpecificationApple Coding Guidelines for Cocoa

    Google Objective-C Style Guide

    相关文章

      网友评论

          本文标题:代码规范

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