编程风格

1)不要使用new创建对象,使用 alloc init方法创建对象:

错误写法:

NSObject *obj = [NSObject new];

正确写法:

NSObject *obj = [[NSObject alloc] init];

2)Header file中,尽量使用@class代替#import

错误写法:

#import <UIKit/UIKit.h>
#import "HoriSipDoorGroupRecord.h"

@interface HoriMultiLockView : UIView

- (instancetype)initWithFrame:(CGRect)frame
           sipDoorGroupRecord:(HoriSipDoorGroupRecord *)sipDoorGroupRecord;

@end

正确写法:

#import <UIKit/UIKit.h>

@class HoriSipDoorGroupRecord;

@interface HoriMultiLockView : UIView

- (instancetype)initWithFrame:(CGRect)frame
           sipDoorGroupRecord:(HoriSipDoorGroupRecord *)sipDoorGroupRecord;

@end

3)BOOL在Objective-C中被定义成signed char类型,也就是说BOOL类型的变量不仅仅可以表示YES(1)和NO(0)两个值,所以不要将BOOL类型变量直接和YES比较

错误写法:

BOOL adult = [self judgementAge]; 
// 无法确定|adult|的值是否为YES(1),不要将BOOL直接与YES比较
if (YES == adult) {
}

// 不要将其他类型转化成BOOL返回
- (BOOL)isAdult {
    return [self personAge];
}

正确写法:

BOOL adult = [self judgementAge]; 
if (adult) {
    // code
}

- (BOOL)isAdult {
    return ([self personAge] >= 18) ? YES : NO;
}

// 正确,逻辑操作符可以直接转化为BOOL
- (BOOL)isValid {
    return [self stringValue] != nil;
}

- (BOOL)isEnabled {
    return [self isValid] && [self isBold];
}

4)对象的nil检查,不要使用nil == objc进行判断,直接使用objc:

错误写法:

if (nil == objc) {
}

正确写法:

if (!objc) {
}

5)做逻辑判断时,把用来判断的值写在左边,被判断的值写在右边:

错误:

// 用来判断的HoriAppOpenTypeNetworkingOpenDoor应该写在左侧,被判断的self.appOpenType写在右侧
if (self.appOpenType == HoriAppOpenTypeNetworking) {
}

正确写法:

if (HoriAppOpenTypeNetworking == self.appOpenType) {
}

6)宏定义的合理使用

随着业务的不断变化,可能有些业务代码暂时不需要,但考虑到后面的需求又可能加上,这里最好使用宏定义暂时屏蔽不需要的业务代码:

#ifdef HoriManuallyBindingAndUnbundProperty
// 业务代码 
#endif

results matching ""

    No results matching ""