97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠見教育科技集團 >> iOS資料 >> iOS開發(fā):Objective-C 代碼規(guī)范  
 
iOS開發(fā):Objective-C 代碼規(guī)范
分享到:

一,關于空行

A:.h中的空行

1,文件說明與頭文件包涵(#import)之間空1行

2,頭文件包涵(#import)之間,如果需要分類區(qū)別,各類別之間空1行

3,頭文件包涵(#import)與@class之間空2行

4,@interface與@class之間空一行

5,頭文件{}里面,空1行開始聲明對象成員,如果需要分類區(qū)別,各類別之間空1行

6,{}外空1行,書寫屬性,如果需要分類區(qū)別,各類別之間空1行

7,空1行開始寫方法,如果需要分類區(qū)別,各類別之間空1行

8,方法完成后,空1行@end

9,如果需要聲明protocal,空2行接著寫。通常protocal寫在@end后面,但是聲明在@interface前面,也可以另寫一個文件

B:.m中的空行

1,文件說明與頭文件包涵(#import)之間空1行

2,頭文件包涵(#import)之間,如果需要分類區(qū)別,各類別之間空1行

3,@implementation和@synthesize之間空一行,@synthesize不要使用逗號(,)如果需要分類區(qū)別,各類別之間空1行

4,@synthesize與方法之間空2行

5,各方法之間空2行

C:方法里面的空行

1,方法名后空1行開始寫

2,變量聲明后需要空1行,如果需要分類區(qū)別,各類別之間空1行

3,條件,循環(huán),選擇語句,整個語句結束,需要空1行

4,各功能塊之間空1行

5,后一個反括號之前不空行

6,注釋與代碼之間不空行

7,#pragma mark與方法之間空1行

二,關于空格

1,.h中協(xié)議<>前面有1個空格

2,.h中成員聲明時,類型與變量之間有至少1各空格。星號(*)靠近變量,不靠近類型。(部分習慣,所有變量可以以*對齊,中間留空)

3,@property后有1各空格,()里面,逗號后有1個空格,括號外,先留1個空格,再聲明屬性

4,方法+,-后,與()之間有1個空格

5,返回類型與*之間有1個空格,方法參數(shù)中返回類型與*之間有1個空格

6,多參數(shù)的方法,每一個參數(shù)后面都有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,應該放在類實現(xiàn)的上面,每一個聲明都單獨一行

4,協(xié)議protocls需要加#pragam marks-來區(qū)分

5,釋放時應該[obj release],obj = nil; delegate也應該在dealloc里面delegate = nil;

五, 方法聲明與定義

1,在 - OR + 和返回值之間留1個空格。

    - (void)doSomethingWithString:(NSString *)theString {
            //TODO
        }

2,參數(shù)列表中,只有參數(shù)之間有空格, 方法名和第一個參數(shù)間不留空格。如:

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

3,當參數(shù)過長時,每個參數(shù)占用一行,以冒號對齊。如:

    - (void)doSomethingWith:(GTMFoo *)theFoo
        rect:(NSRect)theRect
        interval:(float)theInterval {
            //TODO
        }

4,如果方法名比參數(shù)名短,每個參數(shù)占用一行,至少縮進4個字符,且為垂直對齊(而非使用冒號對齊)。如:

    - (void)short:(GTMFoo *)theFoo
        longKeyword:(NSRect)theRect
        evenLongerKeyword:(float)theInterval {
            //TODO
        }

六,方法的調用

1,調用方法沿用聲明方法的習慣。

2,所有參數(shù)應在同一行中,或者每個參數(shù)占用一行且使用冒號對齊。如:

    [myObject doFooWith:arg1 name:arg2 error:arg3];
        //或者
        [myObject doFooWith:arg1
                    name:arg2
                    error:arg3];

3,和方法的聲明一樣,如果無法使用冒號對齊時,每個參數(shù)一行、縮進4個字符、垂直對其(而非使用冒號對齊)。如:

    [myObj short:arg1
            longKeyword:arg2
            evenLongerKeyword:arg3];

七,@public和@private

    @public以及@private訪問標識符應該以一個空格縮進。

    @interface MyClass : NSObject {
          @public
                //TODO
          @privat
                //TODO
        }
        @end

八,Protocols

1,類型標示符、代理名稱、尖括號間不留空格。

2,該規(guī)則同樣適用于:類聲明、實例變量和方法聲明。如:

    @interface MyProtocoledClass : NSObject {
        @private
            id _delegate;
        }
        - (void)setDelegate:(id)aDelegate;
        @end

3,如果類聲明中包含多個protocol,每個protocal占用一行,縮進2個字符。如:

    @interface CustomViewController : ViewController<
            AbcDelegate,
            DefDelegate> {
                //TODO
        }

 更多相關文章

·iOS開發(fā)入門:Objective-C基礎語法(三)
·iOS開發(fā)入門:Objective-C基礎語法(二)
·iOS開發(fā)入門:Objective-C基礎語法(一)
·iOS開發(fā)入門:Objective-C基礎語法串講
·iOS開發(fā)入門:Objective-C語言簡介