B----自己
12-03。哭尝。哥攘。。材鹦。逝淹。。桶唐。栅葡。。尤泽。欣簇。。安吁。醉蚁。。鬼店。网棍。。妇智。滥玷。氏身。。惑畴。蛋欣。。如贷。陷虎。。杠袱。尚猿。。楣富。凿掂。。纹蝴。庄萎。
1:#### 關(guān)于#if和#ifdef的補(bǔ)充
因?yàn)橹绊?xiàng)目中在判斷調(diào)試代碼時(shí),很多地方都用#ifdef DEBUG(現(xiàn)已改為#if DEBUG)塘安,如果項(xiàng)目中需要加入調(diào)試代碼時(shí)糠涛,請(qǐng)用#if來(lái)判斷處理
- #if 會(huì)判斷后面定義的宏是否為真
- #ifdef 只判斷是否定義了這個(gè)宏,但不會(huì)關(guān)心該宏的真假
2:先查看工程有沒有 在操作
3:gzz codeReview時(shí)先搜索?? gzz 并刪除后提交
4:其他注釋形式
// TODO: 等待實(shí)現(xiàn)
// FIX: 有bug耙旦,需要修改
// !!!: 邏輯混亂脱羡,需要完善
- (NSInteger)sumNumber:(NSInteger)firstNumber withNumber:(NSInteger)secondNumber;
? 常量以相關(guān)類名作為前綴
5:static const NSTimeInterval GJR_LOGIN_TIMEOUT = 30;
6:建議使用類型常量,不建議使用#define預(yù)處理命令
static NSString * const GJR_ORDER_TITLE = @"訂單";
static const CGFloat GJR_ORDER_IMG_HEIGHT = 50.0f;
不推薦這樣寫:
#define Title @"訂單"
#define ImgHeight 42
7:方法名中不應(yīng)使用and免都,而且簽名要與對(duì)應(yīng)的參數(shù)名保持高度一致
推薦這樣寫:
- (instancetype)initWithWidth:(CGFloat)width height:(CGFloat)height;
不推薦這樣寫
- (instancetype)initWithWidth:(CGFloat)width andHeight:(CGFloat)height;
8:方法名前綴
推薦這樣寫:
- (void)init...//初始化 - (void)initViews 初始化UI
- (void)update...;//更新 - (void)updateData - (void)updateTitleFrame
- (void)do...Action;//點(diǎn)擊事件 do+事件+Action - (void)doSubmitAction
- (void)load...; //請(qǐng)求數(shù)據(jù)
- (BOOL)is... //方法返回值為boolean型的請(qǐng)使用is前綴標(biāo)識(shí)
- (UIView *)get... //返回某個(gè)值的方法锉罐,使用get為前綴標(biāo)識(shí)
- (UIView *)set... //設(shè)置...
- (void)save... //保存數(shù)據(jù)
- (void)clear... //清除數(shù)據(jù)
- (NSString *)gjr_...;//分類中方法添加gjr_前綴
9:字面量語(yǔ)法
盡量使用字面量值來(lái)創(chuàng)建 NSString , NSDictionary , NSArray , NSNumber 這些不可變對(duì)象:
推薦這樣寫:數(shù)量多是對(duì)齊分行顯示
NSArray *names = @[
? ? ? ? ? ? ? ? ? ? @"Brian",
? ? ? ? ? ? ? ? ? ? @"Matt",
? ? ? ? ? ? ? ? ? ? @"Chris",
? ? ? ? ? ? ? ? ? ? @"Alex",
? ? ? ? ? ? ? ? ? ? @"Steve",
? ? ? ? ? ? ? ? ? ? @"Paul"
? ? ? ? ? ? ? ? ? ];
NSDictionary *productManagers = @{
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"iPhone" : @"Kate",
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"iPad" : @"Kamal",
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? @"Mobile Web" : @"Bill"
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? };
10:枚舉
所屬類名(GJROrder)+枚舉類別名(state)+類型(UnStart)
//訂單任務(wù)類型
typedef NS_ENUM(NSUInteger, GJROrderState)
{
? ? GJROrderStateUnStart = 0, //未開始
? ? GJROrderStateProgress, //進(jìn)行中
? ? GJROrderStatecomplete //已完成
};