首页 > 代码库 > 总结-OC禅与艺术
总结-OC禅与艺术
条件语句 推荐写法,加上括号 if (!error) { return success; } 不推荐写法 if (!error) return success; 表达式 推荐写法 if ([myValue isEqual:@42]) { ... 不推荐写法 if ([@42 isEqual:myValue]) { ... nil和bool检查 推荐写法 if (someObject) { ... if (![someObject boolValue]) { ... if (!someObject) { ... 不推荐写法 if (someObject == YES) { ... // Wrong if (myRawValue =http://www.mamicode.com/= YES) { ... // Never do this."Swift"]; BOOL isCurrentYear = [sessionDateCompontents year] == 2014; BOOL isSwiftSession = nameContainsSwift && isCurrentYear; if (isSwiftSession) { // Do something very cool } 三元运算符 推荐写法 result = a > b ? x : y; 不推荐写法 一个条件语句的所有的变量应该是已经被求值了的。类似 if 语句,计算多个条件子句通常会让语句更加难以理解 result = a > b ? x = c > d ? c : d : y; 情况2:当三元运算符的第二个参数(if 分支)返回和条件语句中已经检查的对象一样的对象的时候 推荐写法 result = object ? : [self createObject];// 就是后面不写多一次object 不推荐写法 result = object ? object : [self createObject]; 错误处理 推荐写法 有些方法通过参数返回 error 的引用,使用这样的方法时应当检查方法的返回值,而非 error 的引用。 NSError *error = nil; if (![self trySomethingWithError:&error]) { // Handle Error } Case语句 - 除非编译器强制要求,括号在 case 语句里面是不必要的。但是当一个 case 包含了多行语句的时候,需要加上括号。 - 使用 fall-through 在不同的 case 里面执行同一段代码。一个 fall-through 是指移除 case 语句的 “break” 然后让下面的 case 继续执行。 - 当在 switch 语句里面使用一个可枚举的变量的时候,default 是不必要的 - 当使用 enum 的时候,建议使用新的固定的基础类型定义,因为它有更强大的类型检查和代码补全。 SDK 现在有一个 宏来鼓励和促进使用固定类型定义 - NS_ENUM() - 为了避免使用默认的 case,如果新的值加入到 enum,程序员会马上收到一个 warning 通知 // 一个case有多行语句,加上括号 switch (condition) { case 1: // ... break; case 2: { // ... // Multi-line example using braces break; } case 3: // ... break; default: // ... break; } // fall-through,就是执行case1继续执行下面的case,不停止 switch (condition) { case 1: case 2: // code executed for values 1 and 2 break; default: // ... break; } // 不使用default switch (menuType) { case ZOCEnumNone: // ... break; case ZOCEnumValue1: // ... break; case ZOCEnumValue2: // ... break; } // warning通知 Enumeration value ‘ZOCEnumValue3‘ not handled in switch.(枚举类型 ‘ZOCEnumValue3‘ 没有被 switch 处理) // 使用NS_ENUM() typedef NS_ENUM(NSUInteger, ZOCMachineState) { ZOCMachineStateNone, ZOCMachineStateIdle, ZOCMachineStateRunning, ZOCMachineStatePaused };
总结-OC禅与艺术
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。