美文网首页iOS Developer
iOS代码命名规范

iOS代码命名规范

作者: mercurygear | 来源:发表于2016-09-08 17:59 被阅读324次

虽然说代码风格是个人问题,但是一旦团队项目中充斥着各种各样的个性代码的时候,review就变成了一种痛苦,开发人员也会潜意识的不想去看其他人的代码,鉴于此,整理一个通用的规范还是有必要的,还是那句话,代码是写给人看的。

通用准则

  • 除了一些认可的缩写,其他情况都尽量使用全称,下面列出了常用缩写:
    alloc、alt(alternate)、app、calc、dealloc、func、horiz(horizontal)、info、init、int、max、min、msg、nib、pboard(pasteboard)、rect、rep(representation)、temp、vert(vertical);还有一些常用技术名词缩写如XML、URL这样的
  • 注意保持命名的一致性,最好能够和Cocoa Touch框架的命名保持一致,这个可以参考相关的头文件,作用相同的属性、方法最好能使用相同的命名
  • 使用自定义的前缀(类似Foundation框架用的NS)来命名class、protocol、function、constant、typedef structure
  • 方法使用驼峰命名法,但以小写字母开头;特别是不要以下划线开头来命名方法,这种方式是保留给Apple专用的(下划线开头命名instance variable除外)
  • class的命名应该包含一个能够代表它的名词
  • protocol应该根据它所组织起来的行为来命名;如果protocol内组织的方法不和任意class关联的话,那么可以使用ing形式来命名以避免和某个class的名称混淆,如NSLocking这样;如果protocol和某个class比较相关的话,那可以把这个protocol命名成和这个class一样的名字,如NSObject;
  • 头文件的命名以该文件内最主要的class、protocol、category来命名
  • 每个framework都应该有一个头文件,包含framework的所有public的头文件,然后以framework的名字命名

方法的命名

  • 对于对某个对象实施行为的方法,直接以动词+对象的方式命名,如selectTabViewItem这样
  • 方法描述两种不同的动作,可以用and连接,其他情况尽量不要用and,如openFile: withApplication: andDeactivate
  • 属性存取方法的命名,设置统一使用setXXXX,访问一般为xxx或isXXX;只在需要返回多个值的才使用get开头命名的方法,如getLineDash: count: phase
  • delegate方法的命名一般以消息发送方的类名开头(去掉前缀),如tableView: shouldSelectRow;除非只有一个参数,否则发送方的类名后会加一个冒号隔开,比如myView: didOpen对比myViewCloseWindow:;使用did和will表达已经或将要发生的事件,使用should来表达此事件要求接收方进行一些处理
  • 方法命中不要用pointer或ptr,而是让参数类型去表达这个信息,下面是一些常用的组合形式:
    ...action:(SEL)aSelector ...atIndex:(int)index ...title:(NSString *)aString
    ...target:(id)anObject ...length:(int)numBytes ...intValue:(int)anInt
    ...frame:(NSRect)frameRect ...point:(NSPoint)aPoint ...tag:(int)anInt
    ...font:(NSFont *)fontObject ...content:(NSRect)aRect ...alignment:(int)mode
    ...stringValue:(NSString *)aString ...keyEquivalent:(NSString *)charCode
  • 类的私有方法的命名,为了避免和父类发生冲突,建议采用前缀加下划线的组合,形如KK_xxxxx这样的方式来命名

函数的命名

  • 使用类似class这样的前缀,如NSHighlightRect
  • 一般带动词,但如果是返回第一个参数的一个属性,那可以不要这个动词,如float NSHeight(NSRect aRect)
  • 如果使用引用的方式返回值,那么使用Get作动词,如const char* NSGetSizeAndAlignment(unsigned int* sizep, unsigned int* alignp)
  • 如果返回布尔值,那么应该以受影响者开头,如BOOL NSDecimalIsNotANumber(const NSDecimal* decimal)

数据类型的命名

  • 枚举常量、const变量的命名和函数的命名类似
  • 一般情况下不要用#define来定义常量,一组相关的整数常量可以使用enum定义,float常量用const定义
  • 宏命名全部使用大写,另外双下划线开头的宏是编译器定义的
  • 通知的命名方式:[�关联类名]+[Did | Will]+[�唯一名称]+Notification,如NSApplicationDidBecomeActiveNotification
  • 异常的命名:[前缀]+[唯一名称]+Exception,如NSFontUnavailableException(注意,常规的,可预期的情况返回错误值;想访问不存在的数组下标这类才用异常)

相关文章

  • iOS 团队编程规范

    iOS 团队编程规范 前 言 一、命名规范 二、代码注释规范 三、代码格式化规范 四、编码规范 参考资料: 转载自...

  • iOS代码命名规范

    虽然说代码风格是个人问题,但是一旦团队项目中充斥着各种各样的个性代码的时候,review就变成了一种痛苦,开发人员...

  • iOS代码规范

    iOS代码规范 命名规范 1.0 对于常量的命名最好在前面加上字母k作为标记. 如: 定义作为NSDictiona...

  • iOS代码命名基础

    iOS 代码架构规范iOS 命名方法 代码命名基础 面向对象软件库设计中经常被忽视的一个方面是类,方法,函数,常量...

  • Android开发中的优化方案

    一、命名规范 代码规范先从命名规范开始,Android的命名规范主要涉及:Java源代码,xml文件,图片资源。 ...

  • iOS 代码规范篇

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

  • iOS 命名方法

    iOS基础命名基础iOS 代码架构规范 通用规则 在命名方法时,请记住以下几条一般准则: 使用小写字母开始名称,并...

  • 代码规范命名规范

    命名 项目名称,包名称,全部小写 类名驼峰命名,每个字母开头大写 变量,方法 首字母小写,其余开头大写

  • Swift--规范编程

    命名规范 注释规范 声明 代码排版 命名规范 常用命名方法 匈牙利命名,一般只是命名变量,原则是: 变量名 = 类...

  • iOS代码规范

    iOS代码规范 1、命名规范 类名首字母大写,方法首字母小写,方法中的参数首字母小写,同时尽量让方法的命名读起来像...

网友评论

    本文标题:iOS代码命名规范

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