- Coding Guidelines for Cocoa 学习总结

2022-1-10

  • 代码命名基础
    1. 基本原则

    2. 清晰,不能为了简洁而不清晰 如
      暂时无法在飞书文档外展示此内容

    3. 尽量不要使用有歧义的缩写,但是广为人知且有确切含义的可以使用 如
      暂时无法在飞书文档外展示此内容

    4. api 方法名不应该有歧义,使人一眼看出能做什么

    5. 保持命名的一致性

    6. 不要自我引用,

    7. 使用前缀

    8. 避免开发中的符号与apple的框架发生冲突

    9. 使用两到三个大写字母,且不使用其他框架的子前缀和下划线

    10. 命名类,协议,方法,常量和typedef结构时,使用前缀,命名函数和结构字段时时不要使用前缀。

      暂时无法在飞书文档外展示此内容

    11. 排版约定

    12. 方法名,首字母小写,后面每个单词首字母大写

    13. 变量名和常量,使用前缀并将首字母大写,每个单词首字母大写

    14. 不在函数名中使用下划线(实例名可以用下划线),从而避免与apple的方法发生冲突

    15. 类名与协议名

    16. 类名要包含前缀,并表现出自己是什么或者干什么的

    17. 协议名应该反映出它的行为表现,大多数协议都不与类相关通常以ing结尾,表示是一类行为,避免被误认为是类名;也有些与类关联的协议,通常将其命名为关联的类名

    18. 头文件命名

    19. 头文件名应预示文件包含的内容

    20. 如果类或者协议不属于任何一个分组,将它分离成一个只包含单个协议或者类的单独文件

    21. 一组相关的类或者协议,应当放在一个带有主类,类别或者协议名称的文件中,如
      暂时无法在飞书文档外展示此内容

    22. 每个框架应该有一个头文件,包含框架包含的所有公共头文件

    23. 如果是对一个框架中的类或者协议进行了拓展,添加Additions到原类名后面,表示这是一个拓展类

    24. 相关联的方法和数据类型,应该放到一个单独的头文件中

  • 方法命名
    • 通用规则
      1. 开头第一个字母小写,后面每个单词首字母大写,不使用前缀
      2. 用动词做开头表现对象的行为,不要使用“do”或者“does”作为名字一部分,因为其缺少含义
      3. 获得字段值的方法,不要带有get,直接以字段名命名
      4. 所有变量都应该带上关键字
      5. 在变量之前添加解释词
      6. 对继承的方法进行拓展,新的关键词应放在圆方法的后面
      7. 不要使用and连接关键词
      8. 如果方法包含两个单独的行为,使用and来连接
    • 访问方法(set 和 获取变量值方法)
      1. If the property is expressed as a noun, the format is:
      • (type)noun;
      • (void)setNoun:(type)aNoun;
      1. If the property is expressed as an adjective, the format is:
      • (BOOL)isAdjective;
      • (void)setAdjective:(BOOL)flag;
      1. If the property is expressed as a verb, the format is:
      • (BOOL)verbObject;
      • (void)setVerbObject:(BOOL)flag;
      1. 不要用分词将动词变成形容词
      2. 可以使用情态动词来表明含义,不要使用do 和 does
      3. 只有间接返回对象和值的方法才使用get
    • 委托方法
    1. 用发送消息的对象的标识开始命名
    2. 类名后面加一个冒号,除非只有一个发送方一个参数
    3. 发布通知的方法是唯一可以不遵守上条规则的例外
    - (void)windowDidChangeScreen:(NSNotification *)notification;
    
    1. 使用did 或者 will 来标识那些将要发生某些事情或者已经发生某些事情的方法
    2. should 比 did 和 will 更适用于去请求委托对象完成某个行为
    • 集合方法
        • (void)addElement:(elementType)anObj;
      • (void)removeElement:(elementType)anObj;
      • (NSArray *)elements;
    • 方法参数
      1. 参数名以小写字母开头,且第一个字母一般为连接词( a )
      2. 不要使用pointer 或者 ptr ,用参数类型来命名参数,而不是指针
      3. 不使用一个字母或者两个字母作为参数名
      4. 避免几个字母的缩写
    • 私有方法
      1. 一般和公有方法相同,但是需要前缀,与公有方法区分开来
      2. 不要使用下划线作为开头
  • 属性和数据类型命名
    • 声明属性和实例变量
      1. 实例变量应该加上下划线
      2. 属性应该声明为一个名字或者动词
      3. 避免显式声明公共实例变量
      4. 如果需要声明显式的实例变量,请使用@private 或者 @protected 注解
      5. 如果你的实例变量想被访问,确保声明了访问方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值