}
//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;










