语句
条件语句
条件语句体应该总被大括号包围。只有一行代码最好也加上,否则会带来安全隐患。
复制代码// 推荐
if (!error) {
return success;
}
// 不推荐
if (!error)
return success;
if (!error) return success;
尤达表达式(Yoda)
不要使用尤达表达式。(名字起源于星球大战中尤达大师的讲话方式,总是用倒装的语序)
复制代码// 推荐
if ([myValue isEqual:@42]) { ...
// 不推荐
if ([@42 isEqual:myValue]) { ...
nil和BOOL的检查
一些人喜欢用这样的方式来检查nil:
复制代码if (nil == myValue) { ...
这样做可以避开少些一个"=“的错误,因为一旦少写一个”=“,那么nil是不能被赋值的,编译器会报错。
但是前面提到,最好不要使用尤达表达式。所以更好的解决方法是用”!”来完成nil和BOOL的检查。
复制代码// 推荐
if (someObject) { ...
if (![someObject boolValue]) { ...
if (!someObject) { ...
// 不推荐
if (someObject == YES) { ... // Wrong
if (myRawValue == YES) { ... // Never do this.
if ([someObject boolValue] == NO) { ...
不要嵌套多个if语句
不要嵌套多个if语句,而是使用多个return来避免增加复杂度,并提高代码可读性。
也就是说,在一个方法中,重要的部分尽量不要放在if语句中,而是将”其它情况”放在if中。
复制代码// 推荐
- (void)someMethod {
if (![someOther boolValue]) {
return;










