代码规范(Objective-C编程艺术)阅读笔记

1.在条件语句,需要被大括号包围,即使只有一行代码,也尽量使用大括号包围以免以后误以为写在条件里,其实并没有

if (error){
   return 0;
}

2.在任何时候都要用变量与常量进行比较,而不要使用常量与变量进行比较,推荐

if (value == 4){}

3.比较重要的代码 一般都不要嵌套在复杂的判断语句中。如果在重要的代码前,做相关的判断,不符合条件的直接return。

- (void)someMethod{
  if(![someOther boolValue]){
     return;
  }
 //比较重要的代码 写在这里
}

4.复杂的判断,比如一个if语句后面需要很多的判断条件,那么可以在判断之前先吧这个条件单独摘出来,判断好了,作为一个变量传到if语句中,这样阅读行更好。

BOOL Acondition = [self A];
BOOL Bcondition = [self B];
BOOL Ccondition = [self C];
BOOL composition = Acondition && Bcondition&& Ccondition;
if (composition){}

5.三元运算符,用于判断一个对象是否是空,如果为空的时候创建一个对象。

  result = object ?:[self creatObject];

6.命名规范,需要使用长命名,能够表征含义的。

UIButton * settingsButton;

7.Constants 常量。常量需要使用驼峰命名法,并且要用相关的类名作为前缀,下面的命名就是比较好的

static const NSTimeInterval ZOCSignInViewControllerFadeOutAnimationDuration = 0.4

不要使用#define来定义一个常量,现在要变成static const来定义一个常量.

static NSString * const ZOCSignInViewControllerFadeOutAnimationDuration = @"ZOCSignInViewControllerFadeOutAnimationDuration"
static const CGFloat ZOCImageHeigtht = 50.f;

如果想在外面使用这个常量 需要这样暴露给外部

extern NSString * const ZOCSignInViewControllerFadeOutAnimationDuration;

8.使用字面值来创建不可变的NSString,NSDictionary,NSArray与NSNumber对象。不能将nil传到NSArray与NSDictionary中,这样容易引起崩溃。

NSArray * name = @[@"a",@"b"];
NSDictionary * dic = @{@"a":@"b"};
NSNumber *shouldUse = @YES;
NSNumber *buildZipCode = @1008;

9.一般dealloc要写在一个文件的最开始,然后init方法要紧跟dealloc方法,创建通知需要写在init方法中,移除通知一般放在dealloc,保证创建跟移除是跟文件的生命周期配对的
10.如果要求函数传参需要满足一定条件,可以使用NSParameterAssert()来通过断言抛出一个异常。
11.不要在一个私有方法前面添加下划线
12.判断两个对象是否相等,那么可以重写着两个对象的方法,一个是isEqual,另一个是hash方法。如果两个对象的hash方法返回一样的值,但是并不能判断两个对象是否是相等的。
13.分类中的方法 需要加前缀 防止方法覆盖原来类的实现

你可能感兴趣的:(代码规范(Objective-C编程艺术)阅读笔记)