Objective C 代码规范
2016-06-26 00:00
483 查看
编程规范要点
.原则 只遵循苹果公司发布代码中的主流代码 格,不参考任何第三 代码。
: 规范
2.1变量、类名、函数名使 驼峰命名法(波浪式),即碰到 个新的单词则使 写字
2.3全局变量使 g_ 作为变量名前缀,静态变量使 s_ 作为变量名前缀
2.4类名使 写字 打头,最好加上项 名称缩写作为前缀(三个字 或三个以上),
如:YYYRootViewController
2.5类的成员变量,使 下划线打头,如:_age
2.6禁 在项 中的任何地 ,包括 件名、 录名、逻辑 录名、项
名,使 空格或中 字符
2.7为了不影响阅读, 个 法尽量不要超过30 。 有超过的在回头重构的时候想办法分
解 2.8每个.h 件最开始处 简短 字说明 下该类的功能。
2.9类中第个功能模块以 #pragma mark - 分隔,上空两 ,下空 。 2.10后缀
UIViewController:VC
UIView:View
UIImage:Img UILabel:Label
UIImageView:ImgView UIButton:Btn
UITextField:TextField UITextView:TextView
NSArray:Array NSDictionary:Dict NSString:Str
NSMutableArray:MArray
NSMutableDictionary:MDict
NSMutableString:MStr
2.11注释 (xcode有插件) 2.12保持ViewController简单.ViewController写着写着就会越来越臃肿,那时因为 随着业务的复杂,功能的增多,所有的逻辑都包含在ViewController中使得 ViewController臃肿不堪:View视图与ViewController分离,业务逻辑与 ViewController分离,让ViewController只关系和负责处理与它相关的事
2.13 注意声明
宏和常量的区别
static CGFloat const XYZBrandingFontSizeSmall = 12.0f;
static NSString * const XYZAsomeNotificationName = @“foo";
一,关于空行
A:.h中的空行
1,文件说明与头文件包涵(#import)之间空1行
2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行
3,头文件包涵(#import)与@class之间空2行
4,@interface与@class之间空一行
5,头文件{}里面,空1行开始声明对象成员,如果需要分类区别,各类别之间空1行
6,{}外空1行,书写属性,如果需要分类区别,各类别之间空1行
7,空1行开始写方法,如果需要分类区别,各类别之间空1行
8,方法完成后,空1行@end
9,如果需要声明protocal,空2行接着写。通常protocal写在@end后面,但是声明在@interface前面,也可以另写一个文件
B:.m中的空行
1,文件说明与头文件包涵(#import)之间空1行
2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行
3,@implementation和@synthesize之间空一行,@synthesize不要使用逗号(,)如果需要分类区别,各类别之间空1行
4,@synthesize与方法之间空2行
5,各方法之间空2行
C:方法里面的空行
1,方法名后空1行开始写
2,变量声明后需要空1行,如果需要分类区别,各类别之间空1行
3,条件,循环,选择语句,整个语句结束,需要空1行
4,各功能块之间空1行
5,最后一个反括号之前不空行
6,注释与代码之间不空行
7,#pragma mark与方法之间空1行
二,关于空格
1,.h中协议<>前面有1个空格
2,.h中成员声明时,类型与变量之间有至少1各空格。星号(*)靠近变量,不靠近类型。(部分习惯,所有变量可以以*对齐,中间留空)
3,@property后有1各空格,()里面,逗号后有1个空格,括号外,先留1个空格,再声明属性
4,方法+,-后,与()之间有1个空格
5,返回类型与*之间有1个空格,方法参数中返回类型与*之间有1个空格
6,多参数的方法,每一个参数后面都有1个空格
三,关于布尔值
1,不要用if(obj==nil){},而用if(!obj){}
2,比较时把常量放前面可以避免错误
不要用if(aIntValue==255){},而用if(255==aIntValue){},避免漏掉一个“=”,而变成赋值
3,不要用if(aBool==YES){},直接用if(aBool){}或if(!!aBool){}
四,变量属性名和其它
1,尽量在使用的时候才声明变量,尽量少用全局变量
2,变量名不要只使用一个字母,尽量能表示变量的意思
3,@synthesize和@dynamic,应该放在类实现的最上面,每一个声明都单独一行
4,协议protocls需要加#pragam marks-来区分
5,释放时应该[obj release],obj = nil; delegate也应该在dealloc里面delegate = nil;
以上是我的一些总结
其它参照:http://www.cimgf.com/zds-code-style-guide/
Google Objective-C Style Guide:http://wenku.baidu.com/view/a9b80ecdda38376baf1faedf.html
最正宗的当属apple官方的:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html
.原则 只遵循苹果公司发布代码中的主流代码 格,不参考任何第三 代码。
: 规范
2.1变量、类名、函数名使 驼峰命名法(波浪式),即碰到 个新的单词则使 写字
开头,尽量使 完整的单词命名,尽量不采 缩写的单词命名;
2.3全局变量使 g_ 作为变量名前缀,静态变量使 s_ 作为变量名前缀
2.4类名使 写字 打头,最好加上项 名称缩写作为前缀(三个字 或三个以上),
如:YYYRootViewController
2.5类的成员变量,使 下划线打头,如:_age
2.6禁 在项 中的任何地 ,包括 件名、 录名、逻辑 录名、项
名,使 空格或中 字符
2.7为了不影响阅读, 个 法尽量不要超过30 。 有超过的在回头重构的时候想办法分
解 2.8每个.h 件最开始处 简短 字说明 下该类的功能。
2.9类中第个功能模块以 #pragma mark - 分隔,上空两 ,下空 。 2.10后缀
UIViewController:VC
UIView:View
UIImage:Img UILabel:Label
UIImageView:ImgView UIButton:Btn
UITextField:TextField UITextView:TextView
NSArray:Array NSDictionary:Dict NSString:Str
NSMutableArray:MArray
NSMutableDictionary:MDict
NSMutableString:MStr
2.11注释 (xcode有插件) 2.12保持ViewController简单.ViewController写着写着就会越来越臃肿,那时因为 随着业务的复杂,功能的增多,所有的逻辑都包含在ViewController中使得 ViewController臃肿不堪:View视图与ViewController分离,业务逻辑与 ViewController分离,让ViewController只关系和负责处理与它相关的事
2.13 注意声明
宏和常量的区别
static CGFloat const XYZBrandingFontSizeSmall = 12.0f;
static NSString * const XYZAsomeNotificationName = @“foo";
一,关于空行
A:.h中的空行
1,文件说明与头文件包涵(#import)之间空1行
2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行
3,头文件包涵(#import)与@class之间空2行
4,@interface与@class之间空一行
5,头文件{}里面,空1行开始声明对象成员,如果需要分类区别,各类别之间空1行
6,{}外空1行,书写属性,如果需要分类区别,各类别之间空1行
7,空1行开始写方法,如果需要分类区别,各类别之间空1行
8,方法完成后,空1行@end
9,如果需要声明protocal,空2行接着写。通常protocal写在@end后面,但是声明在@interface前面,也可以另写一个文件
B:.m中的空行
1,文件说明与头文件包涵(#import)之间空1行
2,头文件包涵(#import)之间,如果需要分类区别,各类别之间空1行
3,@implementation和@synthesize之间空一行,@synthesize不要使用逗号(,)如果需要分类区别,各类别之间空1行
4,@synthesize与方法之间空2行
5,各方法之间空2行
C:方法里面的空行
1,方法名后空1行开始写
2,变量声明后需要空1行,如果需要分类区别,各类别之间空1行
3,条件,循环,选择语句,整个语句结束,需要空1行
4,各功能块之间空1行
5,最后一个反括号之前不空行
6,注释与代码之间不空行
7,#pragma mark与方法之间空1行
二,关于空格
1,.h中协议<>前面有1个空格
2,.h中成员声明时,类型与变量之间有至少1各空格。星号(*)靠近变量,不靠近类型。(部分习惯,所有变量可以以*对齐,中间留空)
3,@property后有1各空格,()里面,逗号后有1个空格,括号外,先留1个空格,再声明属性
4,方法+,-后,与()之间有1个空格
5,返回类型与*之间有1个空格,方法参数中返回类型与*之间有1个空格
6,多参数的方法,每一个参数后面都有1个空格
三,关于布尔值
1,不要用if(obj==nil){},而用if(!obj){}
2,比较时把常量放前面可以避免错误
不要用if(aIntValue==255){},而用if(255==aIntValue){},避免漏掉一个“=”,而变成赋值
3,不要用if(aBool==YES){},直接用if(aBool){}或if(!!aBool){}
四,变量属性名和其它
1,尽量在使用的时候才声明变量,尽量少用全局变量
2,变量名不要只使用一个字母,尽量能表示变量的意思
3,@synthesize和@dynamic,应该放在类实现的最上面,每一个声明都单独一行
4,协议protocls需要加#pragam marks-来区分
5,释放时应该[obj release],obj = nil; delegate也应该在dealloc里面delegate = nil;
以上是我的一些总结
其它参照:http://www.cimgf.com/zds-code-style-guide/
Google Objective-C Style Guide:http://wenku.baidu.com/view/a9b80ecdda38376baf1faedf.html
最正宗的当属apple官方的:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CodingGuidelines/CodingGuidelines.html
相关文章推荐
- VLC调试:增加messages.c日志函数,在无vlc_object_t下打印日志
- object基础魔术方法使用代码
- object_PDO基础封装代码
- JavaScript 特殊对象 Array-Like Objects 详解
- Region-based Convolutional Networks for Accurate Object Detection and Segmentation----R-CNN论文笔记
- 毕向东Java视频学习笔记【Day11 异常+object类】
- [随记]浅谈pdfobject.js实现网页PDF文件浏览
- 1.hql查询实体:Object,hbm
- 1.hql简单属性查询:Object,hbm
- 【转载】混编ObjectiveC++
- CCLuaObjcBridge - Lua 与 Objective-C 互操作的简单解决方案
- 1.LazyForSingleEnd Object,hbm
- Object 类
- swift3.0和Objective-C交互事项(转)
- iOS复杂动画之抽丝剥茧(Objective-C & Swift)(转载)
- android:从ArrayList<HashMap<String, Object>>中获取键值对
- Python脚本报错AttributeError: ‘module’ object has no attribute’xxx’解决方法
- ObjectFactory对象工厂类
- JSONObject转换JSON--将Date转换为指定格式
- GitHub前50名的Objective-C动画相关库相关推荐,请自行研究