//1 注意空格的使用
- (instancetype)initWithName:(NSString *)name Password:(NSString *)password
{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@""
message:@""
delegate:@""
cancelButtonTitle:@""
otherButtonTitles:@"",nil];
returnself;
}
//2 命名规范
// 类名首字母大写,方法首字母小写,方法中的参数首字母小写,同时尽量让方法的命名读起来像一句话,能够传达出方法的意思(不要害怕名字长,保证清晰之后再考虑简洁),同时取值方法前不要加前缀“get”
// 常量以小写字母k开头,后续首字母大写
// 注意"="号两边的空格
- (void)showName
{
NSString *name = @"";
name = [self indexName];
}
- (NSString *)indexName
{
staticconst NSString *kIndexName =@"";
staticconst NSString *kTagIndexName =@"";
return@"";
}
//3 注释
// 尽量通过类、方法、参数的命名传递给阅读代码者(有一定计算机基础,没有编程经验的人)类的业务、函数功能、变量标识
//4 .h文件中 import的一般是要使用.h中也需要的(全局变量,传递参数,delegate等)一般系统引用<>放在最上面
// 就是说尽可能保证 .h文件的简洁性,可以不公开的API就不要公开了,写在实现文件中即可
// import的内容最好按照模块功能划分 @class的放在import下面属性声明写法
// @property (nonatomic, copy) NSString *name;
//5. 引用头文件时:#import Ojbective-C/Objective-C++头文件(Objective-C++是Objective-C与C++混编的文件),#include C/C++头文件。
//6. 实例变量声明时变量名前面加下划线“_”,局部变量不用加。
//7. 一个类中方法较多时使用#pragma mark方便阅读
#pragma mark
//8 算法规范:if else判断时能使用 object == nil这样方式的不使用 if (!object)这样的句式汇编层会有优化
//9 嵌套循环时使用小循环内大循环
- (void)forLoop
{
for (int i =0; i < 10; i++)
{
for (int j =0; j < 100; j++)
{
// do with i and j
}
}
}
//10 能调用一次的不调用多次,比如多次取值
- (NSString *)localUserInfo
{
//NSString * name = [LocalStaticData objectForKey:@"userName"];
}
//11 单例的线程安全
+ (instancetype)sharedInstance {
staticid sharedInstance = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
//12 为什么一般不使用new
/*
new和alloc/init在功能上几乎是一致的,分配内存并完成初始化。
,采用new的方式只能采用默认的init方法完成初始化,
采用alloc的方式可以用其他定制的初始化方法。
alloc分配内存的时候使用了zone.
zone是给对象分配内存的时候,把关联的对象分配到一个相邻的内存区域内,以便于调用时消耗很少的代价,提升了程序处理速度;
*/
参考资料:
iOS学习:iOS代码规范
http://blog.csdn.net/qq350116542/article/details/51195386#import规范