网易严选|iOS-代码细节优化三( 二 )

避免循环引用 。 减少使用unowned , unowned在值不存在时会产生运行时异常导致Crash , 只有在确定self一定会存在时才使用unowned
4.减少使用可选值 。 可选值的价值在于通过明确标识值可能会为nil并且编译器强制对值进行nil判断 。 但不应该随意定义可选值 , 可选值不能用let定义 , 并且使用时必须进行解包操作相对比较繁琐 。 在代码设计时应考虑这个值是否有可能为nil , 只在合适的场景使用可选值 。
5.使用init注入代替可选值属性 , 并避免随意给予可选值默认值 。
【网易严选|iOS-代码细节优化三】6.减少var属性 。 使用计算属性可以减少多个变量同步带来的潜在bug(计算属性因为每次都会重复计算 , 所以计算过程需要轻量避免带来性能问题) 。
三:控制流
1.使用filter/reduce/map代替for循环 。 可以减少局部变量 , 减少模板代码 , 代码更加清晰 , 可读性更高 。
2.使用guard进行提前返回 。
3.使用for where优化循环 , 只有当where条件满足时才会进入循环 。
这次我们先讲这么多 , 后面会继续说明 , 并且这是一个长期工作 , 以后有新的一些规范笔者也会定时更新 。