您的位置:华清远见教育科技集团 >> iOS资料 >> iOS开发:Objective-C 代码规范  
 
iOS开发:Objective-C 代码规范
分享到:

一,关于空行

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;

五, 方法声明与定义

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
        }

六,方法的调用

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<
            AbcDelegate,
            DefDelegate> {
                //TODO
        }

 更多相关文章

·iOS开发入门:Objective-C基础语法(三)
·iOS开发入门:Objective-C基础语法(二)
·iOS开发入门:Objective-C基础语法(一)
·iOS开发入门:Objective-C基础语法串讲
·iOS开发入门:Objective-C语言简介