针对自己的编码检查问题,改正为以下编码规范:

1.

协议( Protocols )

在书写协议的时候注意用 <> 括起来的协议和类型名之间是没有空格的,比如 IPCConnectHandler(), 这个规则适用所有书写协议的地方,包括函数声明、类声明、实例变量等等:

2.

闭包( Blocks )

根据 block 的长度,有不同的书写规则:

  • 较短的 block 可以写在一行内。

  • 如果分行显示的话, block 的右括号 } 应该和调用 block 那行代码的第一个非空字符对齐。

  • block 内的代码采用 4 个空格 的缩进。

  • 如果 block 过于庞大,应该单独声明成一个变量来使用。

  • ^ 和 ( 之间, ^ 和 { 之间都没有空格,参数列表的右括号 ) 和 { 之间有一个空格。

3.

字典

构造字典时,字典的 Key 和 Value 与中间的冒号 : 都要留有一个空格,多行书写时,也可以将 Value 对齐:

// 正确,冒号 ':' 前后留有一个空格
NSDictionary *option1 = @{
NSFontAttributeName : [NSFont fontWithName:@"Helvetica-Bold" size:12],
NSForegroundColorAttributeName : fontColor
};
4.
命名问题
1>
命名应该尽可能的清晰和简洁,但在 Objective-C 中,清晰比简洁更重要。由于 Xcode 强大的自动补全功能,我们不必担心名称过长的问题。

不要使用单词的简写,拼写出完整的单词:

2>一致性

整个工程的命名风格要保持一致性,最好和苹果 SDK 的代码保持统一。不同类中完成相似功能的方法应该叫一样的名字,比如我们总是用 count 来返回集合的个数,不能在 A 类中使用 count 而在 B 类中使用 getNumber 。

5.
实例变量

命名实例变量,在变量名前加上 _ 前缀(有些有历史的代码会将 _ 放在后面 ),其它和命名属性一样:

@implementation MyClass {
BOOL _showsTitle;
}
6.

命名常量( Constants )

如果要定义一组相关的常量,尽量使用枚举类型( enumerations ),枚举类型的命名规则和函数的命名规则相同:

// 定义一个枚举,注意带有 `_` 的名称是不会被使用的
typedef enum _NSMatrixMode {
NSRadioModeMatrix = 0,
NSHighlightModeMatrix = 1,
NSListModeMatrix = 2,
NSTrackModeMatrix = 3
} NSMatrixMode;
7.
定义常量
使用 const 定义浮点型或者单个的整数型常量,如果要定义一组相关的整数常量,应该优先使用枚举。常量的命名规范和函数相同:
const float NSLightGray;
8.
宏定义
不要使用 #define 宏来定义常量,如果是整型常量,尽量使用枚举,浮点型常量,使用 const 定义。 #define 通常用来给编译器决定是否编译某块代码.
9.

命名通知( Notifications )

通知常用于在模块间传递消息,所以通知要尽可能地表示出发生的事件,通知的命名范式是:

[ 触发通知的类名 ] + [Did | Will] + [ 动作 ] + Notification
10.
注释
定义在头文件里的接口方法、属性必须要有注释!
// 注释(注意空格问题)
11.

BOOL 的使用

BOOL 在 Objective-C 中被定义为 signed char 类型,这意味着一个 BOOL 类型的变量不仅仅可以表示 YES(1) 和 NO(0) 两个值,所以永远不要将 BOOL 类型变量直接和 YES 比较;

同样的,也不要将其它类型的值作为 BOOL 来返回,这种情况下, BOOL 变量只会取值的最后一个字节来赋值,这样很可能会取到 0 ( NO )。但是,一些逻辑操作符比如 &&,||,! 的返回是可以直接赋给 BOOL 的;

另外 BOOL 类型可以和 _Bool,bool 相互转化,但是不能和 Boolean 转化。  (啥意思,暂时还没懂,知道的告诉我哟!!!)

12.

Delegate 要使用弱引用

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

13.

代码中注意大量的输出语句,没必要;

定义方法以空行隔开;

代码中注意大量的空行,注意代码的紧凑性;

注意封装,代码的硬编码问题;

宏定义注意全部大写,值用()括起来.

暂时总结以上几点,也欢迎大神们指教!!

转载于:https://www.cnblogs.com/pengsi/p/5549317.html

Objective-C开发编码规范相关推荐

  1. 团队项目开发编码规范之一:概述

    团队项目开发"编码规范"之一:概述 发布日期:2011年3月18日星期三作者:EricHu   勤能补拙.笨鸟先飞. "程序员.程序员"顾名思义就是来编程序的人 ...

  2. Android开发编码规范pdf文件下载

    Android开发编码规范.pdf文件下载 Android开发编码规范.pdf文件下载. 公司要求成立统一的开发流程和编码规范,希望每个人的编码一致,风格一致,这样有利于提高开发效率,于是我从网上整理 ...

  3. 团队项目开发“编码规范”之九:代码分析

    团队项目开发"编码规范"之九: 代码分析 发布日期:2011年3月17日星期三作者:EricHu                                           ...

  4. 团队项目开发编码规范

    团队项目开发"编码规范"之一:概述 "程序员.程序员"顾名思义就是来编程序的人员.他们和一般工作人员是一样的,都需要合作,可能为了一个大型项目程序会有十人以上或 ...

  5. 软件开发编码规范_如果您只喜欢编码,请不要成为软件开发人员

    软件开发编码规范 If you are starting now or thinking about to start a software development career. Or even i ...

  6. iOS开发编码规范与审核时的注意事项

    iOS开发编码规范与审核时的注意事项 一. 编码的排版格式 1 代码的缩进应使用空格(SPACE),不能使用制表符(TAB),并且缩进以2个字符为单位. 2 空格的使用 a) 关键字与其后的表达式之间 ...

  7. php 编码规范哪些_整理了一份比较全面的PHP开发编码规范.

    这些年来多从事Linux下PHP和C相关的开发,带过很多项目和团队,下面是根据经验整理的PHP编码规范,可以用作给大家的范例和参考,根据需要进行取舍和修改! (可能最新的一些php5的规范不够完整,今 ...

  8. 中科方德java开发编码规范_插件推荐:如何将Java编码规范落地实际开发中

    一个软件需要花费80%的生命周期成本去维护. 几乎没有任何软件的整个生命周期仅由其原作者来维护. 编码规范改善软件的可读性,让工程师更快更彻底地理解新的代码. 如果你将源代码转变为一个产品,那么您需要 ...

  9. 关于PHP开发编码规范

    PHP编码规范     作者:中国资讯网 来源:zixuen.com 加入时间:2005-5-12 1. 介绍 1.1. 标准化的重要** 标准化问题在某些方面上让每个人头痛,让人人都觉得大家处于同样 ...

最新文章

  1. 腾讯首位17级研究员/杰出科学家诞生
  2. Ubuntu系统下移动宽带自动启用设置
  3. 批量添加AD账号(三)
  4. Ello讲述Haar人脸检测:易懂、很详细、值得 ...
  5. c语言switch设计计算器,求助。。关于用switch编写简易计算器
  6. 双级减速器优化matlab,基于MATLAB的双级齿轮减速器优化设计
  7. Spring 中获取servletContext及WebApplicationContext以及applicationContext三者之间的关系
  8. python中变量名存储在哪里_python – 如何在内部存储和映射变量名称?
  9. 【转】Retrofit
  10. Docker工作笔记001---Docker的简介
  11. Spring @AutoWired实现原理
  12. XML常用的几种解析方式
  13. GLIBCXX_3.4.21 not found(转载)
  14. docker nginx 命令。
  15. Pytorch之反向传播
  16. matlab 代码 经典例题,MATLAB程序设计及经典例题解析3
  17. Cocos2dx3.2学习准备(一):C++11新特性
  18. 如何提高学习欲--奖励机制
  19. SVN的安装和使用基础教程
  20. 网站优化-减少DNS查询

热门文章

  1. 燕京理工学院java期末_英华学堂燕京理工学院的答案
  2. c语言程序设计开卷考试b卷,C语言程序设计(B)试卷_杨崇联(A1).doc
  3. python3 logging模块_Python3之logging模块浅析
  4. 开发流媒体服务器_Github选出10大开源免费的RTSP流媒体项目
  5. BZOJ-1923-外星千足虫-SDOI2010
  6. 2020年, video captioning论文汇总
  7. 个人周报20200420
  8. 非常好用的一些软件和网站
  9. 模型学习 - SVM
  10. AtCoder AGC001E BBQ Hard (DP、组合计数)