一些Objective-C的编码规范

Objective-C编码规范
1. 格式化代码
1.1. 指针(*)号的位置,与类型空一格,与变量名不空格
如:NSString *nameStr;
1.2. 类
@interface、@implementation和@end等前后各空一行
使用#pragma mark 分类注释方法
使用#pragma mark - 分类方法组

1.3. 方法的声明和定义
在 - OR + 和返回值之间留 1 个空格,方法名和第一个参数间不留空格。
第一中括号不独占一行
当参数过长时,每个参数占用一行,以冒号对齐。如:

- (void)doSomethingWith:(CGFloat)theFoo
rect:(NSString *)theRect
interval:(float)theInterval {
}
如果方法名比参数名短,每个参数占用一行,至少缩进 4 个字符,且为垂直对齐(而非使用冒号对齐)。
- (void)short:(CGFloat)theFoo
longKeyword:(NSString *)theRect
evenLongerKeyword:(float)theInterval {
}
1.4. 方法调用
沿用声明方法的习惯。
1.5. Protocal
类型标示符、代理名称、尖括号间不留空格。类声明、实例变量和方法声明时亦是如此。
如果类声明中包含多个protocal,每个protocal占用一行,缩进4个字符。
2. 命名

2.1. 类名
使用大驼峰命名法
实现类不得使用前缀,相同的前缀影响可读性
继承UI组件时使用该UI名结尾
2.2. 方法名
使用小驼峰命名法
避免使用newXXX,getXXX,setXXX来命名
getter 的方法名和变量名应相同。不允许使用“get”前缀。
- (id)getDelegate; // 禁止
- (id)delegate; // 推荐

查询方法用query代替get 前缀
如:- (UserInfo )getUserInfo{} 则用 - (UserInfo )queryUserInfo{}
2.3. 变量名
使用小驼峰命名法
系统常用类作为变量时加入后缀(后缀见附录1)
变量名大小在 2~20 个字母,避免单字母变量,当变量单纯作为整型循环变量时, 可以使用单个字母。
属性变量使用m开头
常量(#define, const 等)使用小写“k”作为前缀,首字母大写来分割单词。如:kInvalidHandle
避免使用newXXX,getXXX,setXXX来命名

枚举命名方式 用枚举名称加名称 的方式
如:枚举名称叫PayType(支付方式),对应的支付方式有现金,pos支付,支付宝,微信支付等 则 typedef NS_ENUM(NSInteger,PayType){
PayTypeCash = 0, //现金支付
PayTypePos = 1, //pos支付

}
只使用有广为人知含义的缩写,如ip,http,msg等,不得私造缩写
3. 注释
3.1. 文件注释
在h文件的@interface 前面写明创建者,时间,以及该文件的简单描述
/**
* @author XXX, 16-06-06 15:06:52
*
* @brief 该类是一个学生类,继承自用户类
*/
@interface Student:User

@end
3.2. 方法注释
/**
* @author XXX, 16-06-06 15:09:36
*
* @brief 方法描述
*
* @param 参数1
* @param 参数2
* @param 参数3
* @return 返回参数说明
*/
对应如果有返回值的方法,则有 * @return 返回参数说明,否则无
m文件中则尽量使用使用 #pragma mark来为每个方法添加说明
3.3. 实现注释
采用//进行 单行注释。

所有逻辑判断需要添加注释说明。

所有变量、常量需要添加注释说明。
4. 编码规范
4.1. 初始化
没必要在初始化方法里把变量初始化为 0 或者 nil ,这是多余的。所有新分配内存 的对象内容都初始化为 0(除了 isa ),所以不要在 init方法里做无谓的重初始化为 0 的 操作。
4.2. 重写系统方法时必须先调用super 方法

- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];//必须写,否则会造成内存泄漏
}
4.3. 保持公共方法的简洁性和可读性
保持h文件的简洁,私有属性和方法不得定义在h文件中。只读属性必须使用关键字readonly;
4.4. 使用框架根

import

import

ifdef DEBUG

define NSLog(fmt, …) NSLog((@”%s [Line: %d] ” fmt), PRETTY_FUNCTION, LINE, ##VA_ARGS);

else

define NSLog(…){}

endif

  1. 附录一:缩写
    类型 缩写
    NSString Str
    NSMutableString MuStr
    NSDictionary Dict
    NSMutableDictionary MuDict
    NSArray Arr
    NSMutableArray MuArr
    NSData Data
    NSMutableData MuData
    UI组件 缩写
    UILabel Label
    UIButton Btn
    UIImage Img
    UIImageView ImgView
    UITableView Table
    UITextView TextView
    UIFieldView FieldView
    UIScrollView ScrollView
    UIViewController VC
    UIView View
    UINavigationController Nav
    UINavigationBar NavBar

注:其他未标明类型尽量使用该类型去除前缀后作为结尾

  1. 推荐使用插件
    插件管理器 – Alcatraz
    代码注释插件 – VVDocumenter
    按保存时自动格式化代码插件 – AutoIndentWithSave

  2. 感谢阅读

根据我的开发经验和编码习惯所整理,目前公司是使用这套规范,如果你有更好的或者有什么建议,欢迎向我提出,我会统一整理更新。我qq:643702008

10.直接从Word文档里贴过来的,看word可能好看一点,这里可以下载文档 《Objective-C编码规范

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值