美文网首页
iOS代码规范新解

iOS代码规范新解

作者: 好奇猫Care | 来源:发表于2017-12-13 17:23 被阅读0次

命名规范

对于命名规范这里就不多少了,苹果给的有官方的文档《苹果Cocoa编码规范》。简单总结一下就是遵循清晰简洁、见名知意、驼峰命名的原则。其实命名参照系统的Api就可以了,如成员变量、类方法、枚举、block等。

前缀

加前缀可以防止和苹果以及其他第三方库的命名冲突。如是封装SDK内部引用了第三方库时,也应将三方库重命名。

排版空格

  • 关键词和操作符之间加适当的空格。 [必须]
    正确的示范:
    int count = 5; //注意 = 之间的空格
    错误的示范:
    int count=5; 
    
  • 方法的声明和定义在-号或者+号与返回值之间应留一个空格。而返回值与方法名以及方法名和参数列表之间都不应该有空格例如
    - (void)doSomethingWithString:(NSString *)theString { ...}
    

命名禁忌

  • 不了用下划线、破折号,这不止看着丑得问题。
  • 不要用汉字表情(不要以为这是玩笑,真有人这么干过)
  • 不要用类似a1、a2这种命名变量
    *不要用汉语拼音

硬数据问题

项目中尽量减少硬数据,当然作为移动开发项目中硬数据占比会相对大一点,但也不要直接写死在代码里。如不得不用硬数据,也请用字符串常量和宏从代码块里抽离到公共文件里统一管理。

能用字符串常量的,就不要用宏

  • 这样编译速度快
  • 字符串可直接进行比较

颜色值定义

现在项目UI给layout时,颜色基本都是给十六进制的颜色值,以前碰到的项目里面总是大量的颜色值硬数据或者是重复定义的值。

  • 颜色值转换最后选位操作,而不是字符串
    方法如下:
    +(UIColor*)colorWithRGBValue:(NSInteger)rgbValue{
        return [UIColor colorWithRed:((float)((rgbValue & 0xFF0000)   >> 16))/255.0  green:((float)((rgbValue & 0x00FF00) >> 8))/255.0      blue:((float)(rgbValue & 0x0000FF))/255.0 alpha:1.0];
    }
    
  • 颜色值命名
    个人总结了一个比较方便的命名,配合xcode的联想提示,我们在用时就不需要查该值得颜
    色值到底对应的是哪个变量了。
    格式:
    主颜色+颜色值(前两位)
    如:
    #define whiteColor_FF [UIColor colorWithRGBValue:0xFFFFFF]
    #define whiteColor_F5 [UIColor colorWithRGBValue:0xF5F5F5]
    

条件判断逻辑

  • 优先使用三目运算符
    表达式1 ? 表达式2 : 表达式3;
    
  • 判断条件可用switch语句时,就不要用if语句
    switch ($expr) {
      case 0:
           // do something
          break;
      case 1:
      case 2:
      case 3:
      case 4:
          // do something
      default:
           // do something
          break;
    }
     注意default这里最后做一下容错
    
  • 在使用if-else 时,判断条件一定要补全,注意容错
    错误用法1:
     if ($expr1) {
      // do something
      }
     if ($expr2) {
      // do something
      }
     if ($expr3) {
      // do something
      }
    
    错误用法2:
    if ($expr1) {
     // do something
     }else if ($expr2) {
     // do something
     }
    
    正确用法:
    if ($expr1) {
     // do something
    } elseif ($expr2) {
     // do something
    } else {
     // do something
    }
    最后不要没有else,else这里往往需要做容错处理,遗漏后会导致各种情况考虑不全面从而产生bug。
    

Success与Failed

不要遗漏failed的逻辑,如网络请求、自定义block的failed一定要做好失败的容错处理。

Tableview

不要将数据写到cell内,也不要在cellForRowAtIndexPath内对cell的属性一个个赋值。

总结

这里只是将项目中遇到的一些奇葩代码做一个记录,避免这些低级错误。也许你不会这么去做,但如果不定规范到时候项目中还是会出现各种奇葩代码,即便定了规范,普遍的问题最好还是强调一下,因为规范可能太长,不是谁都能有耐心细致的看完,并严格执行下去,最终还是要Review来保证代码质量。

相关文章

  • iOS代码规范新解

    命名规范 对于命名规范这里就不多少了,苹果给的有官方的文档《苹果Cocoa编码规范》。简单总结一下就是遵循清晰简洁...

  • iOS 代码规范篇

    iOS 代码规范篇 iOS 代码规范篇

  • iOS Coding Style Guide 代码规范

    iOS Coding Style Guide 代码规范 iOS Coding Style Guide 代码规范

  • 乐乎-代码规范概述

    参考: 1、iOS中书写代码规范35条小建议 2、iOS开发总结之代码规范 3、iOS代码编程规范-根据项目经验汇...

  • iOS 代码规范文档

    iOS 代码规范文档 [toc] 修订 概述 制定目的:制定iOS 编码规范,主要是为了规范公司内部的iOS 代码...

  • iOS -如何让你写的代码更规范

    iOS -如何让你写的代码更规范 iOS -如何让你写的代码更规范

  • 代码之天圆地方

    优雅的写代码轻松的查代码严格的审代码 一、 iOS代码规范检查 新人入场第一件事就是熟悉代码规范iOS代码编程规范...

  • iOS开发总结之代码规范

    iOS开发总结之代码规范

  • iOS知识整理(二)

    OC知识整理 代码规范 iOS 代码规范 #pragma mark - 添加子视图#pragma mark - 添...

  • iOS 代码规范

    iOS规范:仅适用于iOS的代码规范(使用Objective-C语言)。 一.代码应该简洁易懂,逻辑清晰 不要过分...

网友评论

      本文标题:iOS代码规范新解

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