iOS书写代码规范


本文出自作者的培训机构北京千锋教育

1. 目的

  1. 1.1  统一编程规范,让学员在学习过程中遇到讲师更替,不用重新适应一套

    新的编程习惯;

  2. 1.2  使学员养成良好的代码习惯;

  3. 1.3  为了更加有效地开发和维护内部项目,更加有效地积累代码库。

  1. 原则只遵循苹果公司发布代码中主流的代码风格。

  2. 命名规范

    1. 3.1  变量、类名、函数名使用波浪式命名法,即碰到一个新的单词则使用大

         写字母开头,尽量使用完整的单词命名,不采用缩写的单词命名;
      
    2. 3.2  基本不使用 C/C++语言所提倡的匈牙利命名法;

    3. 3.3  Cocos2D-­‐X中的C++采用微软匈牙利命名法;

    4. 3.4  类名使用大写字母打头,最好加上项目名称缩写作为前缀,如:

      QFWebView,其中 QF 是千锋的汉语拼音首字母;

    5. 3.5  类的成员变量,使用下划线打头,如:_age;

    6. 3.6  加方法和减方法的方法名一律以小写字母打头,如:createTableView;

    7. 3.7  临时变量和函数参数以小写字母打头;

    8. 3.8  const常量使用小写字母k打头;

4. 书写规范

  1. 4.1  属性的声明和实现,必须严格使用@property 和@synthesize 一一对应,

    @synthesize 必须指定对应的成员变量,禁止使用默认生成的成员变量;

    也就是禁止@synthesize age 这种写法,要这样写@synthesize age = _age;

  2. 4.2  成员变量一律写在@interface 内部,禁止在@implementation 后加大括

       号,内部声明成员变量;禁止如下的操作:
    

    @implementation RootViewController {int _age;

    }

    @end

  3. 4.3  尽量使用宏定义 RELEASE_SAFELY RETAIN_SAFELY 取代 NSObject 内的减方法 release retain,RELEASE_SAFELY RETAIN_SAFELY 的实现分别为:

    #define RELEASE_SAFELY(_obj) do { [_obj release]; _obj = nil; }while (0)
    #define RETAIN_SAFELY(_receiver, _assigner) do { id __assigner =_assigner; if (__assigner != _receiver) { [_receiver release];_receiver = [__assigner retain]; } } while (0)

page1image13016
page1image13288
page1image13568
page1image13840
page1image14120
  1. 4.4  临时变量的声明,必须赋值初始化,如:

    NSInteger x = 0;

  2. 4.5  声明多个临时变量,必须另起一行,禁止如下写法:

    NSInteger x = 0, y = 0;

  3. 4.6  临时变量的声明语句写完后,必须隔行开始书写逻辑代码,逻辑代码中可以穿插临时变量的声明语句,同样必须隔行书写,如:

    NSString *midLocalURL = [[g_pLCLog docDir]

stringByAppendingPathComponent:[NSString stringWithFormat:@"%@,%d",fileID, [g_pModel midPhotoSize]]];

if ([g_pFileMgr fileExistsAtPath:midLocalURL]) {CHECKB([g_pFileMgr removeItemAtPath:midLocalURL error:nil]);

}

UIImage *midImage = [image resizedImage:CGSizeMake([g_pModelmidPhotoSize], [g_pModel midPhotoSize])interpolationQuality:kCGInterpolationDefault];

NSData *midData = UIImageJPEGRepresentation(midImage,kImageCompressionQuality);

CHECKB([midData writeToFile:midLocalURL atomically:YES]);

  1. 4.7  遇到新的代码块,必须隔行书写,包括函数的实现、if、switch 分支语句、while、do...while、for 循环语句等,例如:

    NSString *channelID = [g_pModel channelID];

    if ([channelID length] == 0) {channelID = @"iTunes";

    }
    [label
    setText:LCString(@"TEST_VERSION")];

  2. 4.8  所有的二元运算符,以空格隔开,如 x += 12; 不应写成 x+=12;

  3. 4.9  所有的逗号后都要追加一个空格,如:CGRectMake(1, 3, 5, 7);


page2image14848

4.10指针的声明,*写在变量前,类名和*之间用空格隔开,禁止写成 C/C++提倡的写法:NSObject* obj = nil;应写成 NSObject *obj = nil;


4.11 尽量使用 NSInteger 取代 int、使用 NSUInteger 取代 unsigned int;4.12 代码的注释应写在对应代码的上方或右边,禁止将注释写在对应代码的

下方; 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值