iOS OC开发代码规范
1.变量、类名、函数名 使用驼峰命名法
2.尽量使用完整的单词命名,尽量不采用 缩写单词
3.类名使用大写字母打头,前缀统一加上HH 例如:HHHomePageController
4.类的成员变量使用 下划线打头, 例如_age
5.禁止在项目中的任何地方,包括文件名、目录名、逻辑目录名、项目名等地方使用空格或中文字符
6.为了不影响阅读,一个方法中代码不要超过100行。一个类中代码不要超过600行, 有超过的再回头重构的时候想办法分解
7.每个.h文件最开始处用简短文字说明一下该类的功能
8.类中第___个功能模块以 #pragma mark - 分隔,上空两行,下空一行
9.常用对象 命名采用后缀,如下
UIView: View 例如:UICandidateView : viewCandidate;
UILabel: Lab 例如: UICopyLabel: labCopy;
UIButton: Btn 例如: UISelectedButton: btnSelected;
UIImage: img imgAvatar;
UIImageView: imgViewAbc
UITextField: textFiledName;
UITextView: textViewEdit;
NSArray: arrName;
NSMutableArray: mArrName;
NSDictionary: dictPosition;
NSMutableDictionary :MDictPosition;
NSString :strName;
NSMutableString :mStrName;
NSAttributedString :attributedStrName;
NSMutableAttributedString :mAttributedStrName;
10. 文档注释格式如下
/**
方法或变量名说明
@param 参数1说明
@param 参数2说明
...
@return 若方法有返回值,则对返回值进行说明
*/
12. 注意 常量和宏的声明
CGFloat cellHeight = 12.0f;
static CGFloat const cellHeight = 12.0f;
static NSString *const JumpNotificationName = @“JumpNotificationName”;
13.关于.h空行规定
13.1.文件说明与头文件包涵(#import)之间空1行
13.2.头文件包涵(#import)之间如果需要分类区别,各类别之间空1行
13.3.头文件包涵(#import)与@class之间空2行
13.4.@interface与@class之间空1行
13.5.头文件{}里面,空1行开始声明成员对象,如果需要分类别,各类别之间空1行
13.6.{}外空一行开始书写属性,如果需要分类,各类别之间空1行
13.7.空1行书写方法,如果各方法之间需要分类别,各类别之间空1行
13.8.方法完成之后,空1行@end
13.9.如果需要声明protocal,空2行接着写。通常protocal写在@end后,但是声明在@interface前,也可以另写1个文件
14.关于.m中空行的规定
14.1.文件说明与头文件包涵(#import)之间空1行
14.2.头文件包涵(#import)之间如果需要分类区别,各类别之间空1行
14.3.@implementation和@synthesize之间空1行,@synthesize不要使用逗号(,)如果需要分类区别,各类别之间空1行
14.4.@synthesize与 法之间空2
14.5.各方法之间空2行
15.方法里面的空行
15.1.方法名后空1行开始写
15.2.变量声明后需要空1行,如果需要分类区别区分,各类别之间空1行
15.3.条件,循环,选择语句,整个语句结束,需要空1行
15.4.各功能块之间空1行
15.5.最后1个反括号之前不空
15.6.注释与代码之间不空
15.7.#pragma mark与方法之间空1行
16关于空格
16.1.h中协议<>前 有1个空格
16.2.h中成员声明时,类型与变量之间有少1个空格。星号(*)靠近变量,不靠近类型
16.3.@property后有1各空格,()里面,逗号后面有1个空格,括号外面,先留1个空格,再声明属性
16.4.方法+,-后,与()之间有1个空格
16.5.返回类型与*之间有1个空格, 方法参数中返回类型与*之间有1个空格
16.6.多参数的方法,每个参数后都有1个空格
17.关于bool值
17.1.不要 if(obj==nil){}, if(!obj){}
17.2.比较时把常量放前 可以避免错误
17.3.不要 if(aBool==YES){},直接 if(aBool){} 或if(!!aBool){}
18.变量属性名和其它
18.1.尽量在使用的时候才声明变量,尽量少声明全局变量
18.2.变量名不要只使1个字 ,尽量能表明变量的意思
18.3.@synthesize和@dynamic,应该放在类实现的最上面,每一个声明都单独一行
18.4.协议protocol需要加#pragma marks-来区分
18.5.obj = nil; delegate也应该在dealloc里面写 delegate = nil;
19其它
19.1@interface与@implementation与import之间空1行
19.2属性的声明和实现,尽量避免书写@synthesize,如果用到@synthesize,要紧接着@implementation书写,不要换行
19.3成员变量尽量写在@implementation内部,有必要对外暴露时,才写在@interface下
19.4临时变量的声明,尽量赋初始值, eg: NSInteger a = 0;
19.5声明多个临时变量,必须另起一行,禁止书写 int a = 3, b = 5;
19.6临时变量的声明语法写完后,必须各行开始书写逻辑代码,逻辑代码中可以穿插 临时变量的声明,同样必须隔行书写
19.7遇到新的代码块,必须隔行书写。包括函数的实现,if, switch分支,while,do while,for循环等
19.8所有的代码块必须用{}, 即只有1行的if代码也必须用{},
if (success) {
return YES;
}
19.9所有的二次元运算符,必须以空格隔开,如 x += 12, 不能写成 x += 12;
19.10.所有的逗号后必须追加一个空格, 例如CGRectMake(12, 12, 43, 40);
19.11.尽量用NSInteger 取代int, 用NSUInteger 取代unsigned int
iOS OC开发代码规范的更多相关文章
- Android开发代码规范(转)
Android开发代码规范 1.命名基本原则 在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的.比如,大小写的区分,使用不同字母开头等等.但究其本,追其源,在为一个资源其名称 ...
- web前端开发 代码规范 及注意事项
web前端开发 代码规范 及注意事项 外部命名规范 html .js .css文件名称命名规范 my_script.js my_camel_case_name.css my_index.html 路径 ...
- IOS开发-代码规范
代码风格的重要性对于一个团队和项目来说不言而喻.网上有许多 Objective-C 的代码风格,但这份简洁而又最符合苹果的规范,同时有助于养成良好的代码习惯,也是我们团队一直遵循的代码风格. 写法没有 ...
- FW开发代码规范---小任性(2)
三.空行 (1)在每个函数.结构体.枚举定义结束之后都要加空行. 在一个函数体内,逻辑密切相关的语句之间不加空行,其它地方应加空行分隔. struct st1 { - }; // 空行 enum { ...
- Web 前端开发代码规范(基础)
一. 引言 对于一个多人团队来说,制定一个统一的规范是必要的,因为个性化的东西无法产生良好的聚合效果,规范化可以提高编码工作效率,使代码保持统一的风格,以便于代码整合和后期维护. 二. HTML/CS ...
- iOS开发代码规范(通用)
1. 关于命名 1> 统一要求 含义清楚,尽量做到不需要注释也能了解其作用,若做不到,就加注释 使用全称,不适用缩写 2> 类的命名 大驼峰式命名:每个单词的首字母都采用大写字母 例子:M ...
- iOS开发代码规范
1.关于命名 1.1统一要求 含义清楚, 尽量做到不需要注释也能了解其作用,若做不到,就加注释 使用全称不使用缩写 1.2类的命名 大驼峰式命名:每一个单词的首字母都采用大写字母例子: MFHomeP ...
- iOS OC纯代码企业级项目实战之我的云音乐(持续更新))
简介 这是一个使用OC语言,从0使用纯代码方式开发一个iOS平台,接近企业级商业级的项目(我的云音乐),课程包含了基础内容,高级内容,项目封装,项目重构等知识:主要是讲解如何使用系统功能,流行的第三方 ...
- Android开发代码规范
目录 1.命名基本原则 2.命名基本规范 2.1编程基本命名规范 2.2分类命名规范 3.分类命名规范 3.1基本数据类型命名规范 3.2控件命名规范 3.3变量命名规范 3.4整个项目的目录规范化 ...
随机推荐
- jquery插件----文件上传uploadfile
使用了一款jquery上传的插件,ajax上传,可以显示上传的进度,高可配性,简要记录. 插件地址http://hayageek.com/docs/jquery-upload-file.php git ...
- Python的面向对象4
今天我们接着来聊聊继承! 那什么是继承呢? 新写的类是不必重新编写,只要从现有的类继承,就自动拥有了该类的所有功能,新类只需要编写现有类缺少的功能,可以复用已有的代码! python的继承的特点: 继 ...
- 分享一下 Eclipse 插件 PyDev 的安装
想趁暑假学习一下python,学好语言好的开发环境是基础.因为安装有eclipse,所以想安装PyDev插件作为python开发环境.本来以为是一件简单的事情,结果整整弄了一下午各种装不上,度娘上的几 ...
- Codeforces Round #336 (Div. 1) A - Chain Reaction
Chain Reaction 题意:有n(1 ≤ n ≤ 100 000) 个灯泡,每个灯泡有一个位置a以及向左照亮的范围b (0 <= a <= 1e6 ,1<= b <= ...
- Morgan stanley 电话面试
首先是聊项目, 不会涉及到具体的技术问题 1.C和C++的区别:C++里的RTTI 2.vector 和 list的区别 : casting operator ; smart pointer. 3.数 ...
- Xcode 修改工程名称
总会遇到几个项目,在做到一半的时候被要求改项目名,网上找了下相关的资料,大多数是xcode5以前的版本,所以解决好了在这里mark一下,给需要的人. 目标为:将项目名XCD4改成xcd5. 先上结果图 ...
- 使用自定义《UIActivity》进行内容分享-b
简介 这段时间有很多朋友都问我关于怎么去集成ShareSDK或者友盟社会化分享SDK的问题, 其实我想说, Apple一开始就提供了一个类, 供我们去使用分享了, 在iOS 6之后更加增强了这个类, ...
- 关于Java(不同工具或平台与“Hello World”)
对于任何编程语言,都最常见的入门应用: Hello World NetBeans 和 “Hello World” 编写 Java 程序前,先要准备好: Java SE Development Kit ...
- bzoj 2746: [HEOI2012]旅行问题 AC自动机fail树
2746: [HEOI2012]旅行问题 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 489 Solved: 174[Submit][Status ...
- phpstorm 强大的活动模板 可以自定义注释,代码段,根据cms订制自动提示
http://jingyan.baidu.com/article/8275fc86badd6346a03cf6aa.html [PHP] phpstorm的使用(1) http://v.youku.c ...