iOS 编码规范
来源:互联网 发布:l800清零软件 编辑:程序博客网 时间:2024/05/01 17:18
一、文档结构管理
1.建立Libraries文件夹,所有第三方库放入其中。
2.建立Utilities文件夹,自已封装的类放入其中。
3.建立Constants.h头文件,所有的常量定义于其中。Constants.h文件放入Main文件组里面。
4.每个功能块放入一个Group,在目录里建立实际文件夹管理。
5.程序资源文件放入Supporting Files文件夹中。如.plist、数据库资料等。
6.在Supporting Files文件夹下建立Image、Music和Video等相关文件夹。图片、音频、视频等资源分别放入其中。图片资源以程序逻辑框架建立相应实体文件夹管理,若多个功能块共用的,建立Common文件夹,放入其中。
2.引入其它类时,若要作为实例变量的在.h中引入。否则在.m中引入。
4.a:声明实例变量一律以属性声明。
b:其它类要访问的实例变量和方法在.h文件中声明,否则声明于.m文件中。
c:实例变量及方法以功能块放在一起,实现一个功能的连续着放在一起,另一个功能的空一行开始声明。
d:实例变量紧接@interface后开始,方法在实例变量后空一行开始。
e:每个功能块可作简单说明,单个实例变量方法可不作说明,关键的或特殊的变量或方法单独作说明。注释放于变量声明上一行。
5.类中第个功能模块以 #pragma mark - 分隔,上空两行,下空一行。
6.NSLog在测试完成后一律删除。
7.对于系统的常用类作实例变量声明时加入后缀:
UIViewController:VC
UIImage:Img UIImageView:ImgView UIView:View UILabel:Lbl
UIButton:Btn UINavigationBar:NBar UIToolBar:TBar UISearchBar:SBar
UITextField:TextField UITextView:TextView
NSArray:Array NSMutableArray:MArray
NSDictionary:Dict NSMutableDictionary:MDict
NSString:Str NSMutableString:MStr
NSSet:Set NSMutableSet:MSet
8.程序中变量、方法命名尽量能以字面意思表示功能,对于需要用注释来解释的部分代码,注释以如下格式表述:
/**
* 方法或变量说明
* @param 参数1说明(针对方法)
* @param 参数2说明(针对方法)
* @return 若方法有返回值则对返回值作说明
*/
三、Xcode配置
1.全部统一用ARC。
2.用git管理代码。
3.在项目.pch文件加入一段去除release的NSLog代码:
#ifndef __OPTIMIZE__
#define NSLog(...) NSLog(__VA_ARGS__)
#else
#define NSLog(...) {}
#endif
一,关于空行
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;
- iOS上编码规范
- iOS 编码规范
- ios 编码规范
- iOS编码规范
- iOS编码规范
- ios编码规范
- ios开发编码规范
- iOS 编码规范
- iOS-CoCoa编码规范
- IOS 编码规范
- iOS编码规范文档
- iOS单元测试编码规范
- iOS单元测试编码规范
- ios 编码规范
- IOS 编码规范建议
- iOS编码规范
- iOS 编码规范
- ios编码规范
- android中xml tools属性详解
- 深入了解MyBatis返回值
- https生成证书及TOMCAT配置
- java web点击链接用js判断用户是否已经登录 (js获取session及判断是否为空)
- 修改Ubuntu侧边栏图标提示文字
- iOS 编码规范
- 郑重道歉:聚类和异常值分析(Anselin Local Moran's I)修正篇
- 动态下载系统提供的多种中文字体
- TestDESede
- 设计模式-享元
- hdu 2399
- MyBatis日期用法技巧
- POJ-3259
- Web 开发学习 需要掌握的知识 01