当前位置 > 主页 > 万和大讲堂 >


南京iOS开发培训:Objective-C 代码规范

2015-11-05 10:34

  一,关于空行


  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前面,也可以另写一个文件 南京iOS开发培训


  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各空格。星号(*)靠近变量,不靠近类型。(部分习惯,所有变量可以以*对齐,中间留空)南京iOS开发培训


  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开发培训


  1,在 - OR + 和返回值之间留1个空格。


  - (void)doSomethingWithString:(NSString *)theString {


  //TODO


  }


  2,参数列表中,只有参数之间有空格, 方法名和第一个参数间不留空格。如:


  - (void)doSomething:(NSString *)theString (NSArray *)theArray {


  //TODO


  }


  3,当参数过长时,每个参数占用一行,以冒号对齐。如:


  - (void)doSomethingWith:(GTMFoo *)theFoo


  rect:(NSRect)theRect


  interval:(float)theInterval {


  //TODO


  }


  4,如果方法名比参数名短,每个参数占用一行,至少缩进4个字符,且为垂直对齐(而非使用冒号对齐)。如:


  - (void)short:(GTMFoo *)theFoo


  longKeyword:(NSRect)theRect


  evenLongerKeyword:(float)theInterval {


  //TODO南京iOS开发培训


  }


  六,方法的调用


  1,调用方法沿用声明方法的习惯。


  2,所有参数应在同一行中,或者每个参数占用一行且使用冒号对齐。如:


  [myObject doFooWith:arg1 name:arg2 error:arg3];


  //或者


  [myObject doFooWith:arg1


  name:arg2


  error:arg3];


  3,和方法的声明一样,如果无法使用冒号对齐时,每个参数一行、缩进4个字符、垂直对其(而非使用冒号对齐)。如:


  [myObj short:arg1


  longKeyword:arg2


  evenLongerKeyword:arg3];


  七,@public和@private


  @public以及@private访问标识符应该以一个空格缩进。


  @interface MyClass : NSObject {


  @public


  //TODO


  @privat


  //TODO


  }


  @end


  八,Protocols


  1,类型标示符、代理名称、尖括号间不留空格。


  2,该规则同样适用于:类声明、实例变量和方法声明。如:


  @interface MyProtocoledClass : NSObject {


  @private


  id _delegate;


  }


  - (void)setDelegate:(id)aDelegate;


  @end


  3,如果类声明中包含多个protocol,每个protocal占用一行,缩进2个字符。如:


  @interface CustomViewController : ViewController< 南京iOS开发培训


  AbcDelegate,


  DefDelegate> {


  //TODO


  }


最近开班 more>
  • 全栈开发
  • 软件测试
  • Java大数据开发工程师
  • Web前端开发
  • 开发课程基础班第三期
  • 开发课程基础班第二期
  • 开发课程基础班第一期
  • Java Web UI Python
  • CISP
  • HCIE-Cloud lab
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • HCIE-Datacom(HCIA,HCIP基础)
  • HCIP-Datacom(HCIA基础)
  • HCIA-Datacom(0基础)
  • OCP 19C
  • RHCA-OpenStack
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • 脱产班
  • vip班
  • 双休班
  • 双休班
  • 脱产班
  • 脱产班
  • 脱产班
  • 双休班
  • 双休班
  • 双休班
  • 业余班
  • 业余班
  • 6月28日
  • 6月5日
  • 6月26日
  • 6月27日
  • 6月19日
  • 6月12日
  • 6月5日
  • 随时开课
  • 6月10日
  • 6月4日
  • 6月4日
  • 6月12日
  • 6月26日
  • 6月10日
  • 6月10日
  • 6月4日
  • 7月8日
  • 6月28日
    • 姓 名 :
    • 电 话 :
    • 课 程 :

技术交流群

  • Java大数据交流群560819979加入
  • Python技术交流群595083299加入
  • Oracle技术交流群595119011加入
  • Web前端技术交流群604697610加入
  • Huawei技术交流群482919361加入
  • Redhat技术交流群587875348加入
  • UI设计技术交流群511649801加入
  • Cisco技术交流群596886705加入
  • IT运维技术交流群605888381加入