Objective-C编程中语句和变量的一些编写规范建议

2020-01-15 13:43:39王旭

  }

 

  //Do something important
}

// 不推荐
- (void)someMethod {
  if ([someOther boolValue]) {
    //Do something important
  }
}


复杂的表达式

 

当一个判断条件很复杂时,应该将它们提取出来赋值给一个BOOL变量。

复制代码
BOOL nameContainsSwift  = [sessionName containsString:@"Swift"];
BOOL isCurrentYear      = [sessionDateCompontents year] == 2014;
BOOL isSwiftSession     = nameContainsSwift && isCurrentYear;

 

if (isSwiftSession) {
    // Do something very cool
}


三元运算符

 

三元运算符要保证可读性。

复制代码
// 推荐
result = a > b ? x : y;

 

// 不推荐
result = a > b ? x = c > d ? c : d : y;


当三元运算符的第二个参数(if 分支)返回和条件语句中已经检查的对象一样的对象的时候,下面的表达方式更灵巧:
复制代码
// 推荐
result = object ? : [self createObject];

 

// 不推荐
result = object ? object : [self createObject];


错误处理

 

有些方法通通过参数返回 error 的引用,使用这样的方法时应当检查方法的返回值,而非 error 的引用。

复制代码
// 推荐
NSError *error = nil;
if (![self trySomethingWithError:&error]) {
    // Handle Error
}
switch语句中的case,如果只有一行代码可以不必加上大括号,但是多行需要加上。
复制代码
switch (condition) {
    case 1:
        // ...
        break;
    case 2: {
        // ...
        // Multi-line example using braces
        break;