一,關於空行
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;